HOME技術レッツ!スクラッチレッツ!スクラッチ (14) インベーダーゲームをつくろう ― インベーダーに攻撃させよう!

レッツ!スクラッチ (14) インベーダーゲームをつくろう ― インベーダーに攻撃させよう!

これまでインベーダーは移動してくるだけでした。
今回はインベーダーも移動しながらたまをうってくるようにしてみましょう。
これでぐっと難易度が上がりますね。

いつものとおり、まずは敵がうってくるたまのスクリプトを選びましょう。

今回は「Lightning」(ライトニング)を選んでみました。
ライトニングとは、いなずまのことです。

これもそのままでは大きすぎるので、初期設定で大きさを変更します。

「旗マークがおされたとき」ブロックをおき、その下に「大きさを20%にする」ブロックをくっつけました。

「旗マーク」をクリックしたら、「Lightning」スプライトが小さくなりましたね。

最初は敵のたまは見えていては困るので、その下に「隠す」をくっつけておきます。

敵の攻撃タイミング

次に、敵の攻撃タイミングを考えます。
どういうときに敵が攻撃してくるのか、ということですが、今回は一定時間が経ったら攻撃してくるようにします。
こういうときも変数を使います。

「敵の攻撃間隔」という変数を「すべてのスプライト用」でつくりましょう。

この変数を1ずつ増やしていって、ある数になったら攻撃をする、という風にします。

「Ghost」スプライトを開きましょう。

「クローンされたとき」ブロックの一番下、「敵のY座標をy座標にする」ブロックの下に、「もし なら でなければ」ブロックを入れます。

「もし なら」の穴には、「 =50  」ブロックを入れて、左側は「敵の攻撃間隔」にします。

右側は100にします。

「もし敵の攻撃間隔=100なら」ブロックの中に、「敵の攻撃間隔を0にする」ブロックを入れます。

その下に「(メッセージ)を送る」ブロックを入れて、メッセージは新しく「敵の攻撃」をつくりました。

「でなければ」の中には、「敵の攻撃間隔を1ずつ変える」ブロックを入れます。

これで、「敵の攻撃間隔」変数が1ずつ増えていき、100になったら「敵の攻撃」メッセージを送る、というプログラムになりました。

敵のたまを表示する

敵の攻撃メッセージを受け取るのは、敵の攻撃のスプライトになるので、「Lightning」スプライトを開きます。

「敵の攻撃を受け取ったとき」ブロックを置きましょう。
敵の攻撃メッセージを受け取ったら、敵のたまのクローンを作るので、「自分自身のクローンを作る」ブロックをくっつけます。

さらに、「クローンされたとき」ブロックを置きます。

クローンされたら、まずはたまを表示するので、「表示する」ブロックをくっつけます。

そして、敵のたまの発射位置を、敵のいたところにするため、「x座標を敵のX座標、y座標を敵のY座標にする」ブロックをくっつけます。

これで、「敵の攻撃間隔」変数が100になるたびに、敵のたまが発射されます。

でも、まだ敵のたまが表示されるだけで、下に向かって落ちていかないので、今度は、その下に「ずっと」ブロックを置きます。

「Ball」スプライトでやったことと似ていますが、今度は下に向かって落とすので、「y座標を-5ずつ変える」ブロックを入れます。

「Lightning」クローンが一番下まで来たら消したいので、「もし なら」ブロックを置きます。

「もし なら」の穴に「 <50 」ブロックを入れます。

「 <50 」の左側は「y座標」ブロックにして、右側は「-190」にします。

「もしy座標<-190なら」ブロックの中に「このクローンを削除する」ブロックを入れます。

これで、敵のたま(Lightningクローン)が画面の一番下まで行ったら消えるようになります。

敵のたまがロケットに当たったときの判定

次は、敵のたまが、ロケットに当たったら、ゲームオーバーにする処理を作ります。

「もしy座標<-190なら」ブロックの下に「もし なら」ブロックをくっつけます。

「もし なら」の穴に「スプライト1に触れた」ブロックを入れます。

「もしスプライト1に触れたなら」ブロックの中に、「ゲームオーバーを送る」ブロックを入れます。
「ゲームオーバーを送る」ブロックはメッセージを送るブロックですね。

これで、インベーダーが攻撃してくるようになりました。
次はさらにゲームらしくするため、アイテムをとったらロケットがパワーアップするようにしてみましょう!

「レッツ!スクラッチ」コンテンツリスト

関連記事

レッツ!スクラッチ (8) インベーダーゲームをつくろう ― 敵を表示して動かす

インベーダーゲーム、ついに敵の登場です。 まずは、敵の画像を選ぶところからです。 右下のスプライトペインから、「スプライトを選ぶ」アイコンにマウスカーソルを持っていき、虫めがねアイコンをクリックします…続きを読む

レッツ!スクラッチ (15) インベーダーゲームをつくろう ― アイテムをとってパワーアップさせよう!

さて、ゲームにとって欠かせないのは、パワーアップです。 アイテムをとってプレイヤーがパワーアップすることで、より敵を倒しやすくする、というものです。 今回は、一定数の敵を倒すと、アイテムが降ってきて、…続きを読む

レッツ!スクラッチ (1) プログラミングの心得

「レッツ!スクラッチ」では、ビジュアルプログラミング言語「スクラッチ(Scratch)」を使って、わたしが実際につくったプログラムを紹介してくコーナーです。 プログラミングに興味を持つきっかけとして、…続きを読む

レッツ!スクラッチ (2) スクラッチのインストール

では、さっそくビジュアルプログラミング言語、スクラッチをつかっていきましょう! みなさん、Windowsパソコンは持っていますか? Androidスマホやタブレットでもできないことはありませんが、パソ…続きを読む

レッツ!スクラッチ (4) インベーダーゲームをつくろう ― ゲームを設計しよう

おまたせしました! 「レッツ!スクラッチ」第4回目は、いよいよゲームをつくっていきます。 その中でも、今回はインベーダーゲームをつくります。 ゲームを設計しよう! まずはどんなゲームにするのか、企画を…続きを読む

レッツ!スクラッチ (13) インベーダーゲームをつくろう ― 爆発させよう!

このインベーダーゲームでは、たまをうって敵に当たったときに点数が入ったり、敵が自分の陣地まで来たときにゲームオーバーになったりする処理を入れてきましたが、いずれももう一味ほしいと思いませんか? そう、…続きを読む

レッツ!スクラッチ (11) インベーダーゲームをつくろう ― 点数をつけよう!

さあ、これまででロケットからたまを発射して、敵を倒す、という仕組みができました。敵が自分の陣地まで入ってきたらゲームオーバー、という処理も入れています。 さらにゲームらしくするためには、スコアをつけま…続きを読む

レッツ!スクラッチ (9) インベーダーゲームをつくろう ― ゲームオーバーの処理をつくろう!

前回は敵が左右に動き、プレイヤーに迫ってくるところまでをつくりました。 このままだと敵が画面の一番下にたどり着いて左右に行ったり来たりすることになります。 今回は、敵がプレイヤーの位置まで下がってきた…続きを読む

レッツ!スクラッチ (17) インベーダーゲームをつくろう ― ゲームスタートボタンをつくろう

今回はスタートボタンをつくります。 ゲームを始めるときに、画面に表示されている「START」などの文字、もしくはボタンのことです。 「旗マーク」をゲームのスタートボタンとしてもよいのですが、ゲームっぽ…続きを読む

レッツ!スクラッチ (12) インベーダーゲームをつくろう ― ゲームの難易度をあげよう!

点数もつくようになったので、これでほぼゲームとして完成しました。 しかし、このままでは物足りないですよね? まずはゲームが単調すぎて、かんたんです。 慣れてしまえばあっという間につまらなくなってしまう…続きを読む