【Scratch】第1回 シューティングゲームを作ろう(1/3)
こんにちは。第1回目は簡単なシューティングゲームの講座を行っていきます。よろしくお願いします。
この講座では3回に分けて進めていきます。
キャラクターを動かして攻撃(玉)を飛ばす
ボスを表示させて動かす
クリアとゲームオーバーを表示
1.プレイヤーの画像を選択
最初にプレイヤーで使用する画像を選びますが、今回は図1の右下から「スプライト」を選択を選びます。
好きな画像を使っても良いのですが、今回はScratchに用意されている猫ちゃんの画像を使用していきます。
「スプライトを選ぶ」を選択すると図2の画面が表示されます。
猫ちゃんの画像を使用するので、①の動物を選択してから②の画像を選びます。
猫ちゃんの画像を選択して画面が戻りました。
今回は「スプライト1」は使用しないので削除しちゃってください。
ゴミ箱の絵をタップするとスプライトを消せるよ!
2.プレイヤーを動かそう
ここからはプレイヤーのコードを作成して動かしていきます。
・「緑の旗が押されたとき」ブロック
Scratchでは緑の旗を押されるとゲームが開始されます。
「緑の旗が押されたとき」のブロックを置く事で、このコードはゲームが開始したタイミングで必ず実行されます。
・「表示する」ブロック
このブロックはなくても大丈夫ですが、今回はあった方がいいので追加しておきます。
プレイヤーを表示されます。
・「ずっと」ブロック
この「ずっと」ブロックは、中身の入っているブロックをずっと実行します。
そしてこの中に方向キーが押された条件を追加していきます。
なぜ「ずっと」ブロックの中に書いてあるからというと、中に書いておかないとScratch側でボタンが押されているかどうかを受け取る事ができないからです。
今回は「上方向キー」「下方向キー」「右方向キー」「左方向キー」でプレイヤーを動かしたいので、「〇〇キーが押された」ブロックを使用します。
x座標は横に移動、y座標は縦に移動しますので、図4では押された時に4移動するように設定してあります。
数字を大きくすると移動距離が大きくなるので早く、小さくすると遅くなります。
3.攻撃するコードを作成しよう
ここはちょっと難しいかもしれないので、わからない場合はそのまま作成してください。
・「緑の旗が押されたとき」ブロック
移動と同じように「緑の旗が押されたとき」を用意しました。
なぜ移動させるコードと分けたかというと、移動のコードと攻撃のコードを一緒に書くと複雑になり見にくくなってしまうため分けました。
・「x座標を◯、y座標を◯にする」ブロック
プレイヤーの開始位置になります。
・「ネコのHPを10にする」ブロック
このオレンジのブロックは変数と言われるブロックです。
変数は別ページで紹介しようと思いますが、ここではプレイヤーのHP(ヒットポイント)を10にしています。
敵の攻撃を受けて0以下になったらゲームオーバーになります。
・「ずっと」ブロック
ここでも「ずっと」ブロックを使用していて、攻撃・ダメージ・ゲームオーバーのコードが書かれています。
・「0.5秒待つ」ブロック
0.5秒間隔に攻撃の玉を飛ばします。
感覚を空けないと凄い数の玉が出ますので気をつけてください。
・「Ballのクローンを作る」ブロック
クローンに関しては難しいので後で説明をします。
・「Bossに触れたなら」ブロック
ここでプレイヤーがボスに触ってしまった場合はHPを3減らしています。
先ほどネコのHPを10にしたと思いますが、変数は値を変更する事ができるので、1回ボスに触れると10から3減ってしまい7になってしまいます。
・「ネコのHP < 1 なら」ブロック
ここではプレイヤーのHPが0以下になったらゲームオーバーにします。
ネコのHPは最初に10に設定して、ダメージを受けると3減ります。
もし4回ボスに触れてしまった場合は?-2になってしまいますのでこの中身のブロックが実行されます。
・「隠す」ブロック
プレイヤーが0以下になりやられてしまった場合、プレイヤーを隠しています。これは見えなくなってしまいます。
・「ゲームオーバーを送る」ブロック
黄色のブロックをメッセージと言います。
メッセージはとても便利な機能ですが、あまり使用すると複雑になりやすいので気をつけてください。
今回はプレイヤーがやられてしまったので、作成したメッセージ名「ゲームオーバー」を送っています。
4.攻撃の玉を作成
攻撃の玉はクローンを使用しています。
まだScratchに慣れていない方は難しいと思うので、最初はサンプルなどそのまま動かして覚えていくのがいいかもしれません。
最初にプレイヤーと同じように「スプライトを選ぶ」から画像を選びました。
図6のように選択した画像の名前を「Ball」に変更しています。
ここからクローンされた時のコードを書いていきます。
簡単にクローンの説明を書いておきますが、「コピーをする」と同じ考えになります。
この回で使用しているクローンは攻撃の玉をコピーしていて、コピーされた玉は右方向で進むように書いています。
・「Catへ行く」ブロック
最初に攻撃の玉が作られた場合、プレイヤーの猫ちゃんから攻撃を出したいと思いますよね?
そのためには最初にプレイヤーの位置に玉を移動させています。
・「x座標40ずつ変える」ブロック
・「y座標を-30ずつ変える」ブロック
これは玉の位置の調整をしています。
このブロックを入れずにゲームを開始すると分かるのですが、目の位置から玉が出るようになっていると思います(笑)
目ではなく、手のあたりから玉を出したかったので位置を変えています。
・「ずっと」ブロック
玉を右に移動させたいので「ずっと」ブロックを使用してx座標を変えていきます。
・「x座標を7ずつ変える」ブロック
「ずっと」ブロック内にこのブロックを配置すると横方向(x座標)に移動していきます。良かったら数字を変えると速度が変わります。
・「端に触れたなら」ブロック
このブロックを入れないと画面端で玉がずっと残ってしまいます(笑)
使わなくなった画像を削除するようにしましょう!
「このクローンを削除する」ブロックで削除できます。
・「Bossに触れたなら」ブロック
玉が敵にヒット場合になります。
こちらも敵に当たった場合は必要なくなるので、「このクローンを削除する」ブロックで削除します。
ここで1つ注意!「0.1秒待つ」ブロックを入れています。
実はこのブロックが需要で、これを入れないと敵のHPを減らす事ができず倒せません。
なぜ入れる必要があるのか?後で説明します。
完成動画
次回
プレイヤーを方向キーを使って動かす事は出来ましたでしょうか?
次回は敵を表示させて倒すコードを書いていきます。
クローンなどプログラミングに慣れていない方には難しい所もあったと思うので気軽に問い合わせてしてください。
【Scratch】第1回 シューティングゲームを作ろう(2/3)
【Scratch】第1回 シューティングゲームを作ろう(3/3)