レッツ!スクラッチ (14) インベーダーゲームをつくろう ― インベーダーに攻撃させよう!
これまでインベーダーは移動してくるだけでした。
今回はインベーダーも移動しながらたまをうってくるようにしてみましょう。
これでぐっと難易度が上がりますね。
いつものとおり、まずは敵がうってくるたまのスクリプトを選びましょう。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-13_36_28-Scratch-3.29.1.png)
今回は「Lightning」(ライトニング)を選んでみました。
ライトニングとは、いなずまのことです。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-13_36_44-Scratch-3.29.1.png)
これもそのままでは大きすぎるので、初期設定で大きさを変更します。
「旗マークがおされたとき」ブロックをおき、その下に「大きさを20%にする」ブロックをくっつけました。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_38_40-Scratch-3.29.1.png)
「旗マーク」をクリックしたら、「Lightning」スプライトが小さくなりましたね。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_38_49-Scratch-3.29.1.png)
最初は敵のたまは見えていては困るので、その下に「隠す」をくっつけておきます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_39_23-Scratch-3.29.1.png)
敵の攻撃タイミング
次に、敵の攻撃タイミングを考えます。
どういうときに敵が攻撃してくるのか、ということですが、今回は一定時間が経ったら攻撃してくるようにします。
こういうときも変数を使います。
「敵の攻撃間隔」という変数を「すべてのスプライト用」でつくりましょう。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_40_06-Scratch-3.29.1.png)
この変数を1ずつ増やしていって、ある数になったら攻撃をする、という風にします。
「Ghost」スプライトを開きましょう。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_40_40-Scratch-3.29.1.png)
「クローンされたとき」ブロックの一番下、「敵のY座標をy座標にする」ブロックの下に、「もし なら でなければ」ブロックを入れます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_41_33-Scratch-3.29.1.png)
「もし なら」の穴には、「 =50 」ブロックを入れて、左側は「敵の攻撃間隔」にします。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_43_05-Scratch-3.29.1.png)
右側は100にします。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_44_11-Scratch-3.29.1.png)
「もし敵の攻撃間隔=100なら」ブロックの中に、「敵の攻撃間隔を0にする」ブロックを入れます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_46_07-Scratch-3.29.1.png)
その下に「(メッセージ)を送る」ブロックを入れて、メッセージは新しく「敵の攻撃」をつくりました。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_47_13-Scratch-3.29.1.png)
「でなければ」の中には、「敵の攻撃間隔を1ずつ変える」ブロックを入れます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_49_06-Scratch-3.29.1-1.png)
これで、「敵の攻撃間隔」変数が1ずつ増えていき、100になったら「敵の攻撃」メッセージを送る、というプログラムになりました。
敵のたまを表示する
敵の攻撃メッセージを受け取るのは、敵の攻撃のスプライトになるので、「Lightning」スプライトを開きます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_51_08-Scratch-3.29.1.png)
「敵の攻撃を受け取ったとき」ブロックを置きましょう。
敵の攻撃メッセージを受け取ったら、敵のたまのクローンを作るので、「自分自身のクローンを作る」ブロックをくっつけます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_52_09-Scratch-3.29.1.png)
さらに、「クローンされたとき」ブロックを置きます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_52_43-Scratch-3.29.1.png)
クローンされたら、まずはたまを表示するので、「表示する」ブロックをくっつけます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_52_51-Scratch-3.29.1.png)
そして、敵のたまの発射位置を、敵のいたところにするため、「x座標を敵のX座標、y座標を敵のY座標にする」ブロックをくっつけます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_53_39-Scratch-3.29.1.png)
これで、「敵の攻撃間隔」変数が100になるたびに、敵のたまが発射されます。
でも、まだ敵のたまが表示されるだけで、下に向かって落ちていかないので、今度は、その下に「ずっと」ブロックを置きます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_54_09-Scratch-3.29.1.png)
「Ball」スプライトでやったことと似ていますが、今度は下に向かって落とすので、「y座標を-5ずつ変える」ブロックを入れます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_54_44-Scratch-3.29.1.png)
「Lightning」クローンが一番下まで来たら消したいので、「もし なら」ブロックを置きます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_55_14-Scratch-3.29.1.png)
「もし なら」の穴に「 <50 」ブロックを入れます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_55_27-Scratch-3.29.1.png)
「 <50 」の左側は「y座標」ブロックにして、右側は「-190」にします。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_55_47-Scratch-3.29.1.png)
「もしy座標<-190なら」ブロックの中に「このクローンを削除する」ブロックを入れます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-17_56_07-Scratch-3.29.1.png)
これで、敵のたま(Lightningクローン)が画面の一番下まで行ったら消えるようになります。
敵のたまがロケットに当たったときの判定
次は、敵のたまが、ロケットに当たったら、ゲームオーバーにする処理を作ります。
「もしy座標<-190なら」ブロックの下に「もし なら」ブロックをくっつけます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-18_50_39-Scratch-3.29.1.png)
「もし なら」の穴に「スプライト1に触れた」ブロックを入れます。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-18_51_08-Scratch-3.29.1.png)
「もしスプライト1に触れたなら」ブロックの中に、「ゲームオーバーを送る」ブロックを入れます。
「ゲームオーバーを送る」ブロックはメッセージを送るブロックですね。
![](https://kuuur.net/wp-content/uploads/2023/07/2023-07-04-18_51_40-Scratch-3.29.1.png)
これで、インベーダーが攻撃してくるようになりました。
次はさらにゲームらしくするため、アイテムをとったらロケットがパワーアップするようにしてみましょう!
→「レッツ!スクラッチ」コンテンツリスト
関連記事