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

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

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

子どもでもわかるSCRATCH入門

24.インベーダーゲームを作ろう その6

[ 23.インベーダーゲームを作ろう その5 ] の続きです。
自機がやられたときの演出とゲームオーバーの表示を行いました。

 

1. 敵をすべて撃破したとき

すべての敵を撃破したとき、敵を再出現させます。
つまりエンドレスです。昔のゲームはこの手のタイプが多かったですね。

仕組みは、敵の撃破数をカウントして、出現数と同じ数に達したら
敵を並べ直します。

まず、撃破数をカウントする変数を作ります。

敵をすべて撃破したときのことも考える

変数名は撃破数すべてのスプライト用で作ります。

 

Gobo のスクリプトを編集します。

敵を全滅させたら復活させる仕組み

何か大掛かりな変更のように見えますが、そんなことはありませんよ。
1つ1つ見ていきましょう。

まず始めに画像の左上を見て下さい。緑の星マークがある所です。
並べるメッセージを使ってスクリプトを分離しています。
メッセージは新規に作ります。

メッセージを新規に作る

 

分離した部分から少し下にあるスクリプトは初期化です。
ここで撃破数を0にするを追加します。

その右には beam に触れたときの爆発処理があります。
ここで撃破数をカウントするため、撃破数を1ずつ変えるを追加します。

最後の追加は、撃破数が50なら敵を並べなおすメッセージを送ります

 

実行して確認してみて下さい。
すべての敵を撃破したあとで、また敵が復活すれば成功です。

 

 

2. 防護壁を用意する

インベーダーゲームの特徴の1つは防護壁です。
ビームによって少しずつ削られていく感じが素敵です。

今回使う防護壁はスプライトではなく、背景に描いておきます。
リミックスした人は、背景に登録された2番目の絵を選択します

弾から身を守る防護壁を作ろう

 

絵を自作する人への注意です。
防護壁の形はどんなものでもかまいません。問題は色です

この防護壁に関する処理は、色を使った当たり判定を使います
つまり、自機と同じ緑だったり、ビームと同じ白だったりするのはNGです。

 

次のような感じで防護壁を配置できていればOKです。

色による当たり判定を行う

 

 

3. スタンプとは何か

ビームによって防護壁が削られていく仕組みはスタンプを使います。

スタンプはスプライトの絵をコピーするだけの機能です
クローンとは違い、コピーするのは絵だけです。
スタンプした絵は移動することも何もできません。

 

スタンプは、ペンカテゴリの中にあります。

スタンプ機能の使い方

スタンプを使う上で2つのスクリプトを覚えましょう。
消すスタンプです。

消すを使うと今まで押されたスタンプの全てが消えます。

 

スタンプを使ったサンプルです。

画面が表示されない場合はここをクリック

スクリプトは次のようになっています。

スタンプを使った例

2秒でx座標を-150にy座標を0に変えるでは、スタンプされた絵は動かず
本体のスプライトのみが移動しています。
スタンプされた絵は何も出来ず、消すことしかできません。

 

 

4. スタンプを使って防護壁を隠す

防護壁にビームが当たると、防護壁が削られたようになります。
この仕組みは、背景色と同じ黒色の爆発模様をスタンプして防護壁を隠しているだけです。

スプライト、スタンプ、背景の関係を見てください。

スプライトとスタンプと背景の関係

 

上のように3層になっています。(スプライトの中では更に上下関係があります)
スプライトが表示されている場所でスタンプすると、その絵がスタンプエリアに描かれます

今回は、爆発模様を防護壁にスタンプして削れたように見せます。

スタンプを上手く利用して絵を変形させる

 

 

5. 自機ビームの爆発模様を用意する

自機が撃ったビームが防護壁に当たった時の爆発模様を用意します。

リミックスした人は beam スプライトの中にある爆発の絵を使います。

爆発の絵は本体と同じスプライトの中に入れる

コスチューム名は beamEx です。

 

次回はスタンプを使って防護壁が削られたようにする処理を作ります。