どうもー!マミィです!
フリーランスプログラマーをしながら、「スクラッチプログラミング」・「マインクラフト」の真似したいと思う、役に立つ情報を中心に発信しています!

シューティングゲームを作りたい!
タマの発射の方法の作り方を知りたい!

シューティングゲームでたまの発射の作り方を教えます!
この記事では、シューティングゲームに必須のタマを発射した時の動きの解説をします。
- シューティングゲームのタマの発射の作り方
- タマが「敵に当たった」・「端に触れた」ときのクローンの消し方
- シューティングゲームのロケットのスムーズな動かし方(おまけ)
この記事の通りに作ると、クローンを使って、タマを発射する動きが作れます!
方向を変えたりアレンジすることで、自分の作品に取り入れることができますよ!

まずはシューティングゲームの動きの確認から。
矢印キーでロケットを動かして、スペースでタマを発射します。
※スペースキーを離さないと、次のタマを撃つことができません。
↓音が出るのでご注意ください!
ロケットを動かして、タマの発射が確認できましたか?
それでは、1つずつ見ていきましょう!
シューティングゲームの動くタマの発射の作り方

スペースを押した時に、タマを「ロケットの位置」から「画面の端」まで動かすようにします。
STEP1:タマになるスプライトを選ぶ
今回は、タマのかわりになるものに、ボールのスプライトを使います。
タマのスプライトの追加

スプライトを選ぶでタマを追加します

発射用のタマにBallを選択します

Ball が追加されました
スプライトの大きさを調整
初期状態の大きさは少し大きいので、大きさを調整します。

- 大きさを【20】%にする
- 隠す
※タマの初期状態は、見えないように隠しておきます。
STEP2:スペースを押された時にクローンを作る
クローン=分身です。

- <<【スペース】キーが押された>ではない>まで待つ
- 【自分自身】のクローンを作る
自分自身(ボール)のクローンを作るので、ボールのスプライトと同じコードを持ったスプライトが作られます。
スペースキーを1回押したら、スペースを離すまで次のクローンを作る処理をしないようにしています。
※スペースキーを長押ししても、タマは発射しないようになります。
STEP3:クローンされたら端まで動かす
クローンされたあとの動きは以下のようになります。
- タマをロケットの位置に移動させる
- タマを画面の端まで動かす
- クローンを削除する
タマをロケットの位置に移動させる
タマはロケットから発射されますよね!その動きです。

- クローンされたとき
- 表示する
- 【Rocketship】へ行く
- [以下省略]
【Rocketship】へ行く
ロケットからタマを発射させたように見えるように、ボールの初期の位置をロケットと同じ場所に移動します。
これで、ロケットの位置が動いても大丈夫です!
タマを画面の端まで動かす

タマを発射させて、端まで移動させる動きです。

- [以上省略]
- <【端】に触れた>まで繰り返す
- y座標を【10】ずつ変える
タマを画面の下から上の方向に動かすので、ボールが端につくまで、y座標を10ずつ変えていきます。
これで、タマがロケットの位置から画面の上に向かって飛んでいく動きができます。
タマが「敵に当たった」・「端に触れた」ときのクローンの消し方
今回クローンを削除するタイミングは・・・
- 敵(ネコ)に触れた時
- 端に触れた時
になります!
①敵(ネコ)に触れた時

- もし<【ネコ】に触れた>なら
- 【0.1】秒待つ
- このクローンを削除する
条件文を使って、ネコに触れたかどうかを判定させています。
ネコに触れた時に、0.1秒待ってから触れたこのクローン削除しています。
ネコのコードでも同じようにタマに当たったときにネコを削除をしています。
0.1秒待たないと・・・
- ネコがタマに触れたかの判定→ネコをすぐに削除
- タマがネコに触れたかの判定→ネコがすでに削除されていて、当たったと判断できない
となってしまいます。
動作を確実にするために、少し待って判定をするようにしています。
②端に触れた時

タマが端に触れたら、一番下の「このクローンを削除する」にきます。
クローン削除すると「タマ」が消えます。
シューティングゲームのロケットのスムーズな動かし方
タマを発射するロケットも作っていきます。
- ロケットのスプライトを選ぶ
- ロケットを動かす
ロケットのスプライトを選ぶ

タマを発射するものを選びます。
好きなものでいいですが、今回はロケットを選びました。
ロケットをスムーズに動かす

ロケットの初期設定の場所・大きさを決める

「x座標を【13】、y座標を【-100】にする」は、だいたい↓のような感じの位置です。


少し大きかったので、大きさを【40】%にしています。
矢印キーで動かす設定をする

常に矢印キーで動かす判定をしたいので、「ずっと」で判定部分を囲っています。
右方向に動かす→x座標を増やす
左方向に動かす→x座標をへらす
上方向に動かす→y座標を増やす
下方向に動かす→y座標を減らす

キーイベントで分けて動かす方法もできますが、動きがスムーズではありません。
まとめ
以上、シューティングゲームのタマの発射の方法を解説してきました!
- タマをクローンさせる
- クローンしたら、ロケットの位置に動かす
- タマの位置を変えていく
- 敵や端についたら、クローンを削除する
これで、タマが発射されたように見せることができます。
クローンを使うことで同じスプライトでも何個も出すことができます!
今回のスクラッチサイト↓