ブロックを組み立てるようにプログラミングできる『スクラッチ(scratch)』。
さぁなんのゲームを作ろうかとなった時に、おそらく人気ナンバーワンと思われるのが、
グラディウスなどでおなじみの『シューティングゲーム』。
今回は、『シューティングゲーム』の中でも『弾のつくりかた』をまとめています。
※後ほど画面右から左、画面上から下も解説します。
スクラッチでシューティング 準備
準備という事で、『キャラクター』と『弾(たま)』を用意しておきます。
今回は、敵の弾でこのフリー素材サイトから『エフェクト』で検索して持ってきました。
ぴぽや倉庫
『キャラクター』は、
今回は『fire』というメッセージを送るようにしました。
まずはこれでOK。
『弾(たま)』の方は、
緑の旗がクリックされたら、ひとまず隠しておきます。
スクラッチでシューティング 基本編 1つの弾を発射してみる
ここがポイントなんですが、
『fire』を受け取ったときに、
『弾(たま)』を動かすんじゃなくて、
『自分自身のクローン』をつくるようにします。
『クローンされたとき』というブロックを使い、つないでいきます。
- 『クローンされたとき』
- 『キャラクター(今回はdragon)』の場所にいって
- 表示させて
- ずっと右の方向に動かしつつ
- もし端に触れたら
- クローンを削除
という流れになっています。
うまくいくとこんな動きになります。
画面右から左に発射させる場合
『キャラクター』・・向きを左右のみにして、向きを『-90』にします。
『弾(たま)』・・向きを『-90度』にして、『端に触れた』ら消えるようにします。
向き、角度の参考記事
画面上から下に表示させる場合
『弾(たま)』・・向きを『180度』にして、『端に触れた』ら消えるようにします。
向きを調整することで、
- 画面左から右
- 画面右から左
- 画面上から下
- 画面下から上
どの方向にも『弾(たま)』が発射できるようになります。
スクラッチでシューティング 『弾』の発射 割り算で計算する
この方法で『弾(たま)』を発射することはできるのですが、
というリクエストが来たとしたら、
果たしてどの向きに『発射』すればいいのか・・
となってしまいます。
『弾(たま)』を2つ同時、3つ同時に出すにはどうしたらいいかというと、
『割り算』を使うことで、向きが計算できます。
どういうことかというと、
例えば今回は、1つの『弾(たま)』を90度に向けて発射しています。
- 180度を1で割る・・180度のまま
- 180度を2で割る・・90度
ということで、180を2で割れば、発射したい方向がもとまります。
コードはこうなります。
発射ししたい数 + 1 で割る、ということですね。
スクラッチでシューティング 『弾』を2つ同時に発射する
『弾(たま)』を2つ以上同時に発射するには、
『割り算』を使えばいいのですが、
もう少しだけコツがいります。
流れとしては以下になります。
- 計算する角度を0にする・・初期化
- 角度を計算する
- クローンをつくる
- クローンごとに向きを決める
- 全てのクローンをつくった後に、同時に動かす
別記事で花火を作った時も同じような流れなので参考にしてみてください。
参考記事
全体のコードはこんな感じです。
2つ同時、3つ同時、4つ同時と後からでも変えやすいように、『変数』をつくっておきます。
- 変数・・文字や数値を入れておく箱。中身を変更できる
今回は、
- 『角度の変化』
- 『弾の角度』
という2つの変数をつくりました。
- 『角度の変化』・・弾と弾の間の角度
- 『弾の角度』・・弾自体の角度
- 計算する角度を0にする・・初期化
- 角度を計算する
- クローンをつくる
のコード部分が以下です。
クローンを全て作った後に『発射』メッセージを送るようにしています。
4.クローンごとに向きを決める
のコードはこうなります。
5.全てのクローンをつくった後に、同時に動かす
がこんなコードになります。
発射メッセージを受け取ったときに、
全てのクローンを同時に向きの方向に動かしています。
もう一つ。
スクラッチでは計算がちょっと遅いのか、
1秒間隔だとうまく角度の初期化がされなかったので、
間隔を1.5秒くらいにしておきます。
うまくブロックが組めるとこんな動きになります。
3つでも4つでも5つでも
同じ流れで、
弾の向きを 180 割る 4 ・・45度ずつ
として、
3回繰り返せば、3発同時に発射できます。
弾の向きを 180 割る 5・・36度ずつ
で4回繰り返せば、4発同時に発射できます。
弾の向きを 180 割る 5 ・・30度ずつ
で5回繰り返せば、5発同時に発射できます。
5発同時に発射するとこんな動きになります。
スクラッチでシューティング まとめ
変数を使うところと、
角度を割り算で計算するところは、
はじめはちょっと慣れが必要かもと思いますが、
使っているうちに感覚がわかってくるんじゃないかなと思います。
同じようなコードで、2発、3発、4発、5発と発射できるので、
『関数』をつくるともっとスッキリつくれるかなと思うので、
いずれ記事にしたいと思います。
『スクラッチ』ではこんな記事も読まれています。
1. 【スクラッチ】でシューティングゲームのかんたんなつくり方2. 【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜
3. 【スクラッチ】角度や回転を使う方法【動画】【初心者向け】
4. 【スクラッチ】で花火をつくる方法【動画あり】【初心者向け】
5. 【スクラッチ】シューティングで敵の弾をつくる方法【画像たっぷり】
6. 【スクラッチ】でセーブする方法を考えてみる〜基本的な考え方〜
7. 【スクラッチ】でマリオ風の横スクロールアクションゲームを参考にいいとこ取りしてみる
8. スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミングのネタを増やしてみた
9. 【スクラッチ】時間が経つと敵が増えて難しくしたい、というリクエストを叶えるために
10. 【スクラッチ】で【三角関数】の使い方をわかりやすくまとめてみた
↓↓ スクラッチのその先へ ↓↓
1. パソコンのキーボード練習の4つのステップをまとめてみた
2. プログラムで数学も身につく 一石四鳥なクリエイティブコーディング
3. 【三角関数】の使い方〜わかりやすさ重視でまとめてみた【動画あり】
アオキのツイッターアカウント。
この記事へのコメントはありません。