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

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

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

子どもでもわかるSCRATCH入門

25.インベーダーゲームを作ろう その7

[ 24.インベーダーゲームを作ろう その6 ] の続きです。
敵を再出現させる仕組みを作り、スタンプを使って防護壁を隠す方法について説明しました。

 

1. 自機ビームと防護壁の当たり判定

自機が発射したビームが防護壁に当たったら、爆発スタンプを押す仕組みを作ります。

色を使った当たり判定

ビームを上に移動する処理の中に、当たり判定を入れます。

当たり判定は色によって行います。防護壁を水色にしたので水色で判断します。
当たっていたら、爆発模様のコスチュームに変更してy座標を10ほど移動し
スタンプを押しています。

y座標を10ほど移動している理由は、そのままの座標を使うと浅いのです
防護壁が少ししか傷付きません。
そうするとなかなか防護壁が無くならないので、深めに傷を付けます。

 

これで自機の撃ったビームは防護壁を壊せるようになりました。
実行して確かめてみましょう。

 

 

2. 色による当たり判定の作り方

~色に触れたというスクリプトは今回初めて使うので、操作方法を説明します。

今回使ったスクリプトは調べるカテゴリにあります。

色を使った当たり判定について

 

調べたい色を指定する方法です。

調べたい色を指定する方法

① スクリプトの四角い部分をクリック(マウスカーソルが手の形になる)
② 目的の色の所でクリック

この2つの動作で色を指定できます。
これにもし~ならを組み合わせると、色による当たり判定ができるようになります。

 

 

3. スタンプしたものを消す

今のままでは、再実行しても防護壁が壊れたままです。
敵を並べるタイミングでスタンプを消すようにします。
そうすると、すべての敵を倒してまた敵が復活する時に防護壁も復活するので
ちょうどいいでしょう。

敵を並べる時に消したいので、Gobo スクリプトを編集します。

スタンプ下ものを消す

ペンカテゴリにある消す並べるを受け取ったときの下に追加します。

 

それでは実行して確認します。

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

ここでは2つのことを確認しましょう。
1つ目は、防護壁を壊したあとでゲームオーバーにして再実行したときに、
防護壁が元に戻るかチェック。
2つ目は、すべての敵を倒し復活するタイミングで防護壁も元に戻るかチェック。

 

このように色々な状況を想定してテストすることはとても大切です
できるプログラマーを目指しているなら、ここは重要ポイントです。

 

 

4. 敵ビームの爆発模様を用意する

今度は敵が撃ったビームの爆発模様を用意します。

リミックスした人は beamE の3番目のコスチュームを使います。

scratch 便利なスタンプ機能

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

 

 

5. 敵のビームと防護壁の当たり判定

敵ビームが防護壁に当たったらスタンプする仕組みを作ります。

敵ビームのスクリプトを編集します。

スタンプエリアはスプライトと背景の間にある

自機ビームの時とほぼ同じです。

前と違う点は、ビームの進む向きが違うのでy座標の変化値はマイナスです。
また、クローンを削除しているので隠す必要がありません。

実行して確認してみて下さい。
敵のビームによって防護壁が壊れれば成功です。

 

 

6. タイトル画面を用意する

スプライト1つでタイトル画面を作ります。
表示内容は次のような感じで用意しましょう。

ゲームにタイトル画面をつける

自分で用意する人は、ペイントツールなどで1枚の絵を作りアップロードするのも
いいかもしれません。

 

リミックスした人は用意してあるスプライトを使います。

スプライト1つでタイトル画面を作る

 

 

7. タイトル画面を表示する

実行したらタイトル画面を表示して、Zキーが押されたらゲームが開始される仕組みを
作ります。

先ほど用意したスプライトのスクリプトを編集します。

タイトル画面のスクリプト

新規で変数を1つ作ります。名前はタイトルにしました。

この処理のポイントは、
zキーが押されたときタイトル変数が1ならこのスクリプトを止めている所です。
これは2回以上zキーを押しても無効にするためです。
スクリプトの最後に並べるを送るがあります。
このメッセージが2回以上送られると、その後の処理が誤動作するからです。

 

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

タイトル画面空の指示でプレイ開始

並べるを送るを削除します。

タイトル画面でzキーを押すと並べるメッセージが送られるので不要です。

 

最後に自機のスクリプトを編集します。

タイトルからの指示で稼動させる

実行直後は隠しています。並べるメッセージを受け取ったら表示するようにします。

 

これでタイトル画面が入りました。実行してみましょう。

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

 

次回に続きます。