初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

子どもでもわかる Scratch 入門

15.メテオパニックゲームを作ろう その4

 

[ 14.メテオパニックゲームを作ろう その3 ] の続きです。

隕石を斜めに動かし、自機との当たり判定を付けました。

 

 

自機を爆発させよう

隕石と当たった自機を爆発させる仕組みを作ります。
自機と爆発は別のスプライトなので、メッセージを交換する必要があります。

 

自機と爆発のスプライトを連動させる仕組み

 

まず、自機からメッセージを送る処理です。

イベントカテゴリからメッセージ1を送るを移動します。
メッセージ1の横にある白い三角をクリックするとリストが表示されます。

自機からメッセージを送る

 

ここでメッセージに名前を付けます。メッセージ1だと何のためのものか分かりません。
新しいメッセージをクリックするとダイアログボックスが出ます。
「やられた」と入力してOKを押します。

処理の内容にあった名前を入力する

これで隕石と当たったあと、やられたというメッセージを発信します。

 

 

爆発アニメーションを入れよう

メッセージを受け取ったあとの処理を作ります。
爆発のスプライトに切り替えましょう。

爆発のスプライトに切り替える

 

まず、爆発のスプライトを自機の座標に配置します。

イベントカテゴリから(やられた)を受け取ったときを移動します。
その下に動きカテゴリのx座標を()にするy座標を()にするを移動します。

自機の座標を引き継ぐ

そして調べるカテゴリからステージの背景を座標のところへはめ込みます。

 

自機の座標を調べるようにします。

ステージのところをクリックしてRobotに変更します。

自機の座標を引き継ぐ

 

次に下の段をy座標に変更します。
上の段は Robot へ変更したときx座標に変わっていると思います。
もし違っていたらx座標にしましょう。

自機の座標を引き継ぐ

これで爆発のスプライトを自機の座標に配置することができます。

 

 

次は見た目カテゴリの作業です。
スプライトの大きさを自機に合わせて、コスチュームの初期化もします。
初期化しないと再実行したとき正常に動きません。

大きさを100%にするを移動して、180に変更します。
コスチュームをexplosion0000にするを移動して下に付けます。
最後に表示するを付けましょう。

スプライトの大きさとコスチュームを設定する

 

もしコスチュームが explosion0000 になってなかったら、メニューを開いて選択します。

コスチュームの初期化を行う

 

ページの左上にあるコスチュームのタブをクリックすると、登録されている絵が見れます。
ここでは絵を追加したり、削除することができます。
エディタの機能もあるので絵を描くこともできるんですよ。

コスチュームエディタを開く

全部で8枚のコスチュームを持っています。
先ほどは一番上の絵を設定したことになります。
確認が終わったらコードのタブに戻りましょう。

 

 

爆発をアニメーションさせよう

爆発をアニメーションさせます。

制御カテゴリの( ) 回繰り返すを移動して7回に変更します。
そして( ) 秒待つをはめ込み、0.04に変更します。

見た目カテゴリから次のコスチュームにするもはめ込みます。
これで絵の切り替わりが 0.04 秒間隔で行われます。

最後に隠すも付けましょう。

コスチュームを切り替えてアニメーションさせる

7 回繰り返すのは、8枚の絵を用意してあるからです。

実行してテストしましょう。いい感じに爆発すると思います。

 

 

スコアを表示しよう

このゲームにスコアを表示します。
得点は隕石に当たらない限り、自動で増えていくようにします。

まず、スコア変数を作りましょう。

変数カテゴリで変数を作るボタンをクリックしてダイアログボックスを出します。
変数名には「スコア」と入力して OK をクリックします。
タイプはすべてのスプライト用のままにします。

スコア用の変数を作る

 

スコア変数のチェックは外さないように。
ステージに表示されたスコア表示をそのまま使います。

スコア用の変数はチェックを付けたままにする

 

 

得点を増やしていく仕組みを作ります。
ロボットのスプライトを選択しましょう。

ロボットのスプライトに切り替える

 

スコアを足していくのはロボット処理の中で行います。

スコアを0にするスコアを1ずつ変えるを図のように組み込みます。

スコアの初期化とスコア加算を行う

スコアを0にするは初期化です。再実行したとき、前回のスコアが残らないようにします。

スコアを1ずつ変えるを移動処理の中に入れることで、やられるまでスコアは増え続けます。

 

 

これでスコアも入りました。実行してみましょう。

画面が表示されないときはここをクリック

 

自機がやられたら、再実行 (旗アイコンをクリック)してみましょう。
そのたびにスコアが初期化されたかを確認します。

 

次回に続きます。