あなたの子どももできる、シューティングゲームやジャンプアニメの簡単な作り方Scratchで始めるプログラミング教育(4)(2/3 ページ)

» 2016年03月24日 15時30分 公開
[薬師寺国安PROJECT KySS]

キャラからボールを発射してみよう

 次に、キーボードの「上矢印キー」を押すと、ステージ上に配置したキャラクターからボールが発射させてみよう。キャラクターはキーボードの「左右矢印キー」で左右に動かせる(図4)。

図4 キャラクターからボールが発射されている

 プログラミングの仕方や解説については動画2を参照してほしい。

動画2 キャラからボールを発射させてみよう

 以降、動画2のポイントをテキストでも補足しておく。「スプライト(Giga)」に書く命令は図5のように、発射するボール(Basketball)に書く命令は図6のようになる。

図5 「スプライト(Giga)」に書く命令(左)、図6 発射するボール(Basketball)に書く命令(右)

発射するキャラを左右に動かすなら、ボールも同じだけ動かす

 発射するボールはGigaの後ろに配置し、Gigaをキーボードの左右矢印キーで左右に動かす際に、ボールも一緒に左右に移動させる必要がある。「右向き矢印キーが押されたとき」は「X座標を10ずつ変える」を、「左向き矢印キーが押されたとき」は「X座標を-10ずつ変える」を、それぞれ指定する。

「制御」分類の「条件付き繰り返し」で、指定した条件まで命令を実行させ続ける

 ボールを上方向に発射させるには、Y座標の値を30ずつ変えている。ボールの「Y座標の位置が180になるまで繰り返す」という命令をしているので、ボールは元にあった位置(Y座標が-140)から考えると、ボールは320も動いており、30で割ると、余りの1回分を足して、11回分「Y座標の値を30ずつ変える」処理を高速にしていることになる。

 前回解説した「繰り返し」は、くり返す回数を決めていたが、今回のように11回分と計算するのが面倒なときは、「制御」分類の「〜まで繰り返す」命令で実行させることもできるので便利だ。この「条件付き繰り返し」も、プログラミングではよく使うテクニックの1つだ。

命令を「初期化」する

 また、ボールを発射して、Y座標が180の位置に達すれば、再度ボールは元にあった位置(Y座標が-140)に戻しておくようにする。1つのボールで何発もボールを発射させるわけなので、この処理が必要となる。

 さらに、ボールを発射した後、「このスクリプトを止める」を指定していないと、上向き矢印キーから手を放してもボールが発射され続けるので、上向き矢印キーから手を離した場合は、ボールの発射を止めるように、「このスクリプトを停止する」を追加する必要がある。

 これらの処理のように、命令を元の状態に戻すことをプログラミングでは、「初期化」という。先ほど解説した「繰り返し」や、連載第2回で紹介した「イベント」の考え方においても重要なことなので、「初期化しないと、どうなるのか」を試しながら覚えておいてほしい。

幽霊を撃つシューティングゲームを作ってみよう

 最後に、先ほどのボールを発射する処理を利用して、ランダム(不規則)に現れる幽霊をボールで打つゲームを作ってみよう。ボールが幽霊に命中した数もカウントして表示する。制限時間は60秒とする(図7)。

図7 幽霊をキャラクターがボールで命中させるゲーム

 プログラミングの仕方や解説については動画3を参照してほしい。

動画3 キャラが幽霊を撃つゲームを作ってみよう

 以降、動画3のポイントをテキストでも補足しておく。幽霊(Goast1)とGiga、Basketball、ステージの4つのスプライトを使っている。

 まず、スプライト(Basketball)に書く命令は図8になる。これは、先ほどの図6と同様なので、説明は省略する。

図8 ボール(Basketball)に書く命令

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。