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

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

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

子どもでもわかる Scratch 入門

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

 

[ 24.インベーダーゲームを作ろう その6 ] の続きです。

敵を再出現させたり、スタンプを使って防護壁を隠す方法を説明しました。

 

 

色で当たり判定をしよう

防護壁とビームの当たり判定は、色で行います。
色による当たり判定の方法を覚えましょう。

使う命令は調べるカテゴリの色に触れたです。

調べるの色に触れたを使う

 

まず、もし〜ならをプログラミングエリアに移動します。
そして色に触れたをはめ込みましょう。
次に色の部分をクリックします。

調べるの色を設定する

すると色を設定するウィンドウが開くので、
下の方にあるスポイトツールをクリックします。

ページ全体が薄暗くなります。
マウスカーソルをステージへ移動し、防護壁の上でクリックしましょう。

ステージ上の色を指定する

 

クリックしたあと、ページは元の明るさに戻ります。
そして色に触れたの色は防護壁と同じになります。

ステージ上で指定した色を取得できる

これで色(防護壁)との当たり判定はできました。

 

 

自機ビームと防護壁の当たり判定をしよう

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

スプライト beam の移動処理の中にプログラムを追加します。
先ほど作った色(防護壁)との当たり判定を使いましょう。

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

防護壁の色に当たったらコスチュームを爆発模様に切り替え
スタンプを押します。
y座標を10移動しているのは、そのまま使うと接触部分が浅いからです。
10足すことで爆発模様が深くスタンプされます。

 

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

爆発模様がスタンプされたあと

 

 

スタンプしたものを消そう

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

Gobo のコードを編集します。

メッセージ並べるを受け取ったときの下に全部消すを入れます。

スタンプを消す処理を入れる

 

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

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

 

ここでは2つのことを確認しましょう。

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

 

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

 

 

敵ビームの爆発模様を用意しよう

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

スプライトの beamE をクリックしましょう。

スプライト beamE をクリック

 

コスチュームの3番目に爆発模様を用意します。
リミックスした人は次のようになっています。

beamE の3番目のコスチュームを爆発模様とする

コスチューム名は beamEx にします。

 

 

敵ビームと防護壁の当たり判定をしよう

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

敵ビームのコードを編集します。

beamE の3番目のコスチュームを爆発模様とする

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

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

 

実行して確認しましょう。
敵のビームによって防護壁が壊れれば成功です。

敵ビームの爆発模様がスタンプされたあと

 

 

タイトル画面を用意しよう

1枚の画像を使ってスプライト1つでタイトル画面を作ります。
表示内容は次のような感じです。

タイトル画面を1つのスプライトで用意する

 

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

タイトル用のスプライトを使う

自作したい人は、ペイントツールなどで1枚の絵を作り
アップロードするのもいいかもしれません。
また、この程度であればコスチュームエディタでも簡単に作れます。

なお、1つのスプライトで作る理由は、プログラムをシンプルにできるからです。

 

 

タイトル画面を表示しよう

タイトル画面からゲームを始めるプログラムを作っていきます。
zキーを押したらゲーム開始となります。

 

まずはタイトルという変数を作ります。
このスプライトのみを選びます。
かならず、タイトルのスプライト Sprite2 を選択した状態で作業しましょう。

タイトルが表示中かどうか調べる変数を作る

 

次に、タイトル Sprite2 のコードを編集します。

タイトルからゲームを始めるプログラム

この処理のポイントは、zキーが押されたとき
タイトル変数が1ならこのスクリプトを止めている所です。
これは2回以上zキーを押しても無効にするためです。

プログラムの最後に並べるを送るがあります。
このメッセージが2回以上送られないようにするためです。

 

次に Gobo のコードを編集します。

実行後の並べるを送るを消します。

タイトルからゲームを始めるプログラム

並べるを送るはタイトルから送るようにしたのでいらないですね。

 

最後に自機のコードを編集します。

プログラムを分割します。

自機のプログラムを分割する

並べるを受け取ったときを受けてから、操作出来るようにします。

つまり、タイトル中は操作できないようにして、ゲームを始めたら操作出来るようにします。
操作できる、できないの状態は変数の自機の移動を使っています。
0 のときは「操作できない」、1のときは「操作できる」というようにです。

 

これでタイトル処理は終わりです。実行してみましょう。

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

 

次回に続きます。