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

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

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

子どもでもわかるSCRATCH入門

28.インベーダーゲームを作ろう その10

[ 27.インベーダーゲームを作ろう その9 ] の続きです。
定義ブロックの使い方を学んで、進攻音を鳴らすようにしました。
非常に長くなってしまった「インベーダーゲームを作ろう」も今回で終了です。

 

1. 進攻速度を変化させる

敵の数が減ってきたら、敵の移動速度を速める仕組みを作ります。

まず、進行速度を管理する変数を作ります。

scratch 進行速度を管理する変数を作る

変数名を進攻速度とします。

 

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

敵の数が減ってきたら進行速度をアップする

進行速度変数を1で初期化し、この変数を使って待ち時間を変更します。
変更箇所は2つです。(進行速度) 秒待つに変更します。

敵の撃墜数が 30よりも多ければ、進行速度を変更しています。
つまり、敵の数が 20を下回ったら速度がアップするような仕組みです。

(50 - 撃墜数) を 20 で割り、進行速度変数に格納。

これで徐々に待ち時間が短くなり、敵の進攻が早くなります。
実際に計算してみると分かり易いですね。

進行速度の計算結果

 

 

2. 敵の弾数を増やす

敵が全滅して復活するたびに、敵の弾数が増えていく仕組みを作ります。
インベーダーゲームにステージというものはありませんが、ゲームが進むにつれ
難しくなっていくのはゲームとして必須と言えます。

まず、弾の量を管理する変数を作ります。

弾の量を管理する変数を作る

変数名を弾の量にします。

 

弾の量は元々どの程度だったのか、Gobo のビーム発射スクリプトを確認します。

ビーム発射のスクリプト

1から100までの乱数がより小さい時、ビームを発射しています。
これを踏まえて弾の量を変化させます。

 

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

ステージクリアで弾を増やす仕組み

旗がクリックされたときの下で0に初期化しています。

並べるを受け取ったときの下ではずつ増やすようにしています。
これで、初めて敵が出現する時は4になり、2回目の出現で8、3回目で12
というように増えていきます。

ビーム発射の判断スクリプトに弾の量変数を入れれば完了です。

 

 

3. 敵のコスチュームを変化させる

今、敵の絵は変化していませんが、コスチュームを2枚使って1歩移動する度に
切り替わるようにします。

1枚目と違う絵で、2枚目のコスチュームを用意しましょう。
リミックスした人は既に用意されているものを使います。

2枚の絵を切り替えて表示する

 

では、コスチューム番号を管理する変数を作ります。

コスチュームを管理する為の変数を作る

変数名をコス番号にします。

 

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

移動するたびにコスチュームを切り替えて表示する

 

並べるを受け取ったときの下でコス番号変数を1で初期化します。

(進攻速度) 秒待つの下でコス番号の切り替えを行ってます。

コス番号が1なら 3-1=2
コス番号が2なら 3-2=1
となり、コス番号が1と2の間で切り替わるようになっています。

敵の移動スクリプトの最後にあるコスチュームの指定に変数をはめ込みます。
コス番号変数をはめ込むことで1と2が交互に設定されます。

 

 

4. Gobo インベーダーゲームの完成

これでゲームは完成です。

この後は、バグ (不具合)がないかしっかりテストしましょう。

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

 

 

5. 改造してみよう

これにて「インベーダーゲームを作ろう」は終了です。お疲れ様でした。

この後、このゲームを改造してみることをおすすめします。
プログラムをより深く理解できるようになりますよ。

 

例えば次のような改造をしてみるのもいいでしょう。

・画面上部を横切るボーナスキャラUFOを出現させる
・自機を残機制にする (保有する自機がなくなったらゲームオーバー)
・ゲームオーバー後、リトライを可能にする
・クラウド変数を使ってハイスコアを記録する

などなど挑戦してみましょう。

 

今回の題材についてですが、少し難しかったと私は思ってます。
もし、仕組みに理解できていない所があったとしても、気にせず少し簡単にできる
ゲームを作ってみましょう。
始めの内はゲーム作りに慣れることが大切です。