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

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

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

子どもでもわかるSCRATCH入門

26.インベーダーゲームを作ろう その8

[ 25.インベーダーゲームを作ろう その7 ] の続きです。
スタンプを使って防護壁を隠す仕組みとタイトルを入れました。

 

1. 敵が防護壁まで来たとき

敵が防護壁のある位置まで進攻してきたらどうなるでしょう?
次の画像を見てください。

ゲーム作りには細かい点にも気を利かせる

敵と防護壁が重なっています。
実際には、敵が防護壁の上を移動する形になります。

学習サンプルとして、これの対応に悩みました。
はっきりいってこのままでも遊べますから、対応しなくてもいいかな・・・
と思ったのですが、本格ゲームプログラマーの育成を目指しているので
対応することにします。

オリジナルのインベーダーゲーム同様に、敵が防護壁まで来たら
防護壁を削る仕様にします。

 

今回もスタンプを使うので、防護壁を隠すための絵を用意します。
敵と同じサイズで黒い四角を作り、コスチュームの4番目に入れます。

リミックスをした人は用意されているものを使います。

オブジェを隠す黒い四角を用意する

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

 

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

敵の移動処理の中にスタンプを入れる

移動を受け取ったときの処理の最後に追加します。
ちなみに、直前にはビーム発射 (beamEのクローン作成) の処理があります。

このスクリプトの仕組みは、
敵がy座標-60より小さい位置にいるとき、コスチュームを黒い四角に変更して
スタンプしています。

実行して確認しましょう。
もし、実行結果をしっかりと確認したいのなら、黒い四角を赤い四角にして
テストしてみて下さい。
どのタイミングで赤い四角がスタンプされるのか分かります。

 

 

2. スコアを入れよう

スコアを表示するために変数を作ります。

スコア変数を作る

タイプはすべてのスプライト用です。

変数の表示はステージの左上に移動しましょう。

ステージの左上にスコアを移動する

 

次にスクリプトですが、敵を倒したら 100点入るようにします。
それからボーナスとして、敵を全滅させたら 2001点が入るようにします。
ちなみに、2000点ではなく 2001点の理由ですが1点を付けることで
何回全滅させたか認識できるからです

敵を倒す処理は Gobo スプライトの中にあります。
Gobo のスクリプトエリアを開きましょう。

スコア加算の仕組みを入れる

3つの場所に追加します。

1つ目はスコア変数の初期化です。
2つ目は敵を倒した時の得点です。
3つ目はすべての敵を倒した時のボーナスです。

 

 

3. 音を鳴らしてみよう

スクラッチでは音も簡単に鳴らせます。

実際に鳴らしてみましょう。
新規でプロジェクトを作成した人は [ Gobo Invaders 素材 ] を開いて中を見て下さい。
リミックスした人は作成中のプロジェクトで確認しましょう。

scratch で音を鳴らしてみる

スプライトタブ、コスチュームタブに並んでタブがあります。クリックして下さい。
そして再生ボタンをクリックしましょう。音が鳴ります。

再生ボタンの上に表示されている絵は、音の波形です。
再生ボタンの横には、停止ボタンと録音ボタンがあります。

 

音についての操作はコスチュームの場合と似ています。

スクラッチの音の扱い方

ライブラリから選択したり、ローカル環境からアップロードして使うことも可能です。
もちろん、バックパックを使って他のプロジェクトからコピーすることもできます。

 

 

4. 音をスクリプトで鳴らそう

ゲームの中で音を鳴らすときには、スクリプトを使って鳴らします。

自機がビームを発射する音を入れてみます。
beam のスクリプトを編集します。

スクリプトを使って音を鳴らす

カテゴリから、Shootの音を鳴らすを移動します。
音を自作した人は音の名前(Shoot)が違っていると思います。

実行して確認してみましょう。
ビームを発射したタイミングで音がなれば成功です。

 

自機がやられた時の音を入れます。自機のスクリプトを編集します。

自機が爆発する音を入れる

 

敵がやられた時の音を入れます。Gobo のスクリプトを編集します。

敵の撃墜音を入れる

 

これで、ビームの発射音・自機の爆発音・敵の爆発音が入りました。
実行してみましょう。

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

 

次回に続きます。