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に触れたなら」ブロックの中に、「ゲームオーバーを送る」ブロックを入れます。
「ゲームオーバーを送る」ブロックはメッセージを送るブロックですね。

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

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

関連記事

レッツ!スクラッチ (3) 基本画面の説明

「レッツ!スクラッチ」の3回目は、基本画面の説明です。 基本画面 A — メニュー B — タブ C — ブロックパレット D — スクリプトエリア E…続きを読む

レッツ!スクラッチ (18) インベーダーゲームをつくろう ― ネット上にアップロードしよう

「インベーダーゲームをつくろう」の最終回です。 今回でこのゲームのプログラミングはおしまいです。 最終回は、このインベーダーゲームをインターネット上にアップロードしてみます。 スクラッチは自分で作った…続きを読む

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

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

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

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

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

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

レッツ!スクラッチ (6) インベーダーゲームをつくろう ― プレイヤーを左右に動かそう

いよいよ、プレイヤーを動かせるようにしていきます。 キーボードの右矢印キーを押したら右へ、左矢印キーを押したら左に動くようにしましょう。 「x座標を0、y座標を-150にする」ブロックの下に、「ずっと…続きを読む

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

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

レッツ!スクラッチ (7) インベーダーゲームをつくろう ― たまを発射する

次は、いよいよ攻撃です。 スペースキーを押したら、ロケットから、たまが発射されるようにします。 たまを発射するには、たまの画像が必要になります。 スプライトペインの右下のアイコンにマウスカーソルを合わ…続きを読む

レッツ!スクラッチ (5) インベーダーゲームをつくろう ― 画面にプレイヤーを表示しよう

さあ、ゲームの設計もかんたんですが、おわりました。 いよいよプログラミングをしていきましょう! 最初は、画面を用意して、プレイヤーを表示するところまでをやっていきます。 画面の背景を指定しよう! まず…続きを読む

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

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