Scratch バルーンシューティング

風船を撃ち落とすシューティングゲームを作ろう!

シルバー級

まずは遊んでみよう!

完成したゲームがこちら。旗を押してスタート!

これから、このゲームを一歩ずつ作っていくよ。

1

ねこの位置と大きさを決めよう

最初からいるねこのスプライトを使うよ。まず、ねこの 名前位置大きさ をプログラムで決めよう。

ゲーム画面イメージ
🐱
Scratch エディタ画面(右下)
🐱 ねこ
このスプライトを選ぼう

スプライトの名前を 「ねこ」 に変えよう。名前はスプライト情報パネルの一番上で変えられるよ。

🐱
ねこ
ねこのプログラムを作るよ
@greenFlag が押されたとき
大きさを (60) %にする
x座標を (-180) 、y座標を (-120) にする
      
旗を押してみよう。ねこが左下に小さく表示されたかな?
大きさ 60% で少し小さくするのがポイント。ゲーム画面を広く使えるよ。
2

まと(照準)のスプライトを作ろう

新しいスプライトを追加しよう。

Scratch エディタ画面(右下)
🐱 ねこ
🐱
🖌
← 「描く」を選ぼう
ここをクリック →

「描く」を選んで、コスチュームエディタで十字マーク(+)を描こう。名前を 「まと」 に変えよう。

線の太さは 3〜4 くらいがちょうどいいよ。

中心をぴったり合わせるのがコツ! コスチュームの中心マーク(+)に重ねよう。
3

まとをマウスについてこさせよう

ゲーム画面イメージ
🐱
🖱️
まと
まとのプログラムを作るよ
@greenFlag が押されたとき
ずっと
  [マウスのポインター v] へ行く
end
      
旗を押して、マウスを動かしてみよう。まとがついてくるかな?
「ずっと」がないと最初の1回しか動かないよ。
4

たま(弾)のスプライトを作ろう

もうひとつ新しいスプライトを追加しよう。

Scratch エディタ画面(右下)
🐱 ねこ
まと
🐱
🖌
← 「描く」を選ぼう
ここをクリック →

「描く」を選んで、小さな丸を描こう。名前を 「たま」 に変えよう。

色は好きな色でOK。小さくて丸いのがポイント!

5

たまをねこの位置にセットしよう

たまは最初、ねこの場所にかくれているよ。旗が押されたら、ねこのところに移動して隠れるようにしよう。

🔵
たま
たまのプログラムを作るよ
@greenFlag が押されたとき
[ねこ v] へ行く
隠す
      
旗を押してみよう。たまが見えなくなったかな? ねこの場所にかくれているよ。
「隠す」で元のスプライトは見えなくして、あとでクローンだけ表示するんだ。
6

スペースキーで弾を発射しよう

スペースキーを押したら、たまのクローン(コピー)を作って発射するよ。

🔵
たま
たまのプログラムに追加するよ

前のステップのプログラムに、「ずっと」と「もし〜なら」を追加しよう。

@greenFlag が押されたとき
[ねこ v] へ行く
隠す
ずっと
  もし <[スペース v] キーが押された> なら
    [自分自身 v] のクローンを作る
  end
end
      

追加したのはこの部分:

ずっと
  もし <[スペース v] キーが押された> なら
    [自分自身 v] のクローンを作る
  end
end
      
旗を押して、スペースキーを押してみよう。まだ弾は見えないけど、クローンは作られているよ!
クローンとは、スプライトのコピーのこと。元のスプライトは隠したまま、コピーだけ飛ばすんだ。
7

たまをマウスの方向に飛ばそう

ゲーム画面イメージ
🐱
↗ 15歩
🔵
たま
たまのプログラムに追加するよ

クローンされたとき、マウスの方向を向いて、端まで飛んでいくプログラムを作ろう。

クローンされたとき
[マウスのポインター v] へ向ける
表示する
<[端 v] に触れた> まで繰り返す
  (15) 歩動かす
end
このクローンを削除する
      
旗を押して、スペースキーで弾を撃ってみよう! ねこの位置からマウスの方に飛んでいくはず。
「端に触れたまで繰り返す」で、弾が画面の端まで飛んだら自動的に消えるよ。
8

連射を防ごう(応用テクニック)

いまのプログラムだと、スペースキーを 押しっぱなし にすると弾が連続で出てしまう。1回押すごとに1発だけ出るようにしよう。

🔵
たま
たまのプログラムに追加するよ

前のステップのプログラムに、1つだけブロックを追加しよう。

@greenFlag が押されたとき
[ねこ v] へ行く
隠す
ずっと
  もし <[スペース v] キーが押された> なら
    [自分自身 v] のクローンを作る
    <<[スペース v] キーが押された> ではない> まで待つ
  end
end
      

追加したのはこの1つのブロックだけ:

<<[スペース v] キーが押された> ではない> まで待つ
      

このブロックは「スペースキーから指をはなすまで待つ」という意味。これで、キーを押しっぱなしにしても弾は1発しか出ない。

旗を押して、スペースキーを押しっぱなしにしてみよう。弾が1発ずつ出るようになったかな?
「〇ではないまで待つ」は、条件がウソ(偽)になるまでプログラムを止めておくブロック。連射防止や入力待ちによく使うテクニックだよ。
9

風船のスプライトを選ぼう

スプライトライブラリから風船を追加しよう。

Scratch エディタ画面(右下)
🐱 ねこ
まと
🔵 たま
🐱
ここをクリック →

「スプライトを選ぶ」から 「Balloon1」 を探して追加しよう。

🎈

スプライト一覧の右下にある虫メガネボタンからライブラリを開けるよ。
10

風船をクローンで出現させよう

🎈
Balloon1
風船のプログラムを作るよ
@greenFlag が押されたとき
大きさを (60) %にする
隠す
ずっと
  (2) 秒待つ
  [自分自身 v] のクローンを作る
end
      
旗を押して2秒待ってみよう。まだ風船は見えないよ(クローンを表示するプログラムは次のステップで作る)。
大きさを 60% にして、ゲーム画面にちょうどいいサイズにするよ。
11

風船を右から左に動かそう

ゲーム画面イメージ
🐱
🎈
🎈
🎈
← -3
← -3
🎈
Balloon1
風船のプログラムに追加するよ
クローンされたとき
x座標を (220) 、y座標を ((-120) から (120) までの乱数) にする
表示する
ずっと
  x座標を (-3) ずつ変える
  もし <(x座標) < [-230]> なら
    このクローンを削除する
  end
end
      
X座標
Y座標
🎈
-3 ずつ
x: 220
x: -230
乱数を使うと、風船が毎回ちがう高さから出てくるよ。
12

あたり判定をつけよう

ゲーム画面イメージ
🐱
🎈
💥
🎈
🎈
Balloon1
風船のプログラムに追加するよ

クローンのスクリプトに たまとの当たり判定 を追加しよう。

前のステップのクローンスクリプトに、「たまに触れた」判定を追加しよう。

追加したのはこの部分(下に追加するよ):

  もし <[たま v] に触れた> なら
    このクローンを削除する
  end
      
旗を押して風船を撃ってみよう! 当たったら消えるかな?
「〇に触れた」ブロックであたり判定ができるよ。

Balloon1 の完成プログラム(この時点):

クローンのスクリプト:

クローンされたとき
x座標を (220) 、y座標を ((-120) から (120) までの乱数) にする
表示する
ずっと
  x座標を (-3) ずつ変える
  もし <(x座標) < [-230]> なら
    このクローンを削除する
  end
  もし <[たま v] に触れた> なら
    このクローンを削除する
  end
end
      
13

スコアをつけよう

ゲーム画面イメージ
スコア 3
🐱
🎈
🎈
Balloon1
風船のプログラムを変えるよ

変数 「スコア」 を作ろう。風船に当たったら +1!

旗のスクリプトに追加:

[スコア v] を [0] にする
      

クローンのあたり判定を変えよう:

  もし <[たま v] に触れた> なら
    [スコア v] を (1) ずつ変える
    このクローンを削除する
  end
      

Balloon1 の完成プログラム(この時点):

クローンのスクリプト:

クローンされたとき
x座標を (220) 、y座標を ((-120) から (120) までの乱数) にする
表示する
ずっと
  x座標を (-3) ずつ変える
  もし <(x座標) < [-230]> なら
    このクローンを削除する
  end
  もし <[たま v] に触れた> なら
    [スコア v] を (1) ずつ変える
    このクローンを削除する
  end
end
      

旗のスクリプト:

@greenFlag が押されたとき
[スコア v] を [0] にする
大きさを (60) %にする
隠す
ずっと
  (2) 秒待つ
  [自分自身 v] のクローンを作る
end
      
何点取れるかな? 旗を押して挑戦してみよう!
14

ライフをつけよう

ゲーム画面イメージ
スコア 5
ライフ 3
🐱
🎈
🎈
Balloon1
風船のプログラムを変えるよ

変数 「ライフ」 を作ろう。風船が左端まで来たら -1!

旗のスクリプトに追加:

[ライフ v] を [3] にする
      

クローンの左端判定を変えよう:

  もし <(x座標) < [-230]> なら
    [ライフ v] を (-1) ずつ変える
    このクローンを削除する
  end
      

Balloon1 の完成プログラム(この時点):

クローンのスクリプト:

クローンされたとき
x座標を (220) 、y座標を ((-120) から (120) までの乱数) にする
表示する
ずっと
  x座標を (-3) ずつ変える
  もし <(x座標) < [-230]> なら
    [ライフ v] を (-1) ずつ変える
    このクローンを削除する
  end
  もし <[たま v] に触れた> なら
    [スコア v] を (1) ずつ変える
    このクローンを削除する
  end
end
      

旗のスクリプト:

@greenFlag が押されたとき
[スコア v] を [0] にする
[ライフ v] を [3] にする
大きさを (60) %にする
隠す
ずっと
  (2) 秒待つ
  [自分自身 v] のクローンを作る
end
      
風船を逃すとライフが減る。3回逃したら...?
15

ゲームオーバーにしよう

🎈
Balloon1
風船のプログラムに追加するよ

新しく 「旗が押されたとき」 のまとまりをもうひとつ作ろう。ライフが0になったらゲームを止めるプログラムだよ。

@greenFlag が押されたとき
ずっと
  もし <(ライフ) = [0]> なら
    すべてを止める
  end
end
      
「旗が押されたとき」のまとまりは、1つのスプライトに何個でも作れるよ。役割ごとに分けると見やすくなるんだ。

Balloon1 の完成プログラム(この時点):

クローンのスクリプト:

クローンされたとき
x座標を (220) 、y座標を ((-120) から (120) までの乱数) にする
表示する
ずっと
  x座標を (-3) ずつ変える
  もし <(x座標) < [-230]> なら
    [ライフ v] を (-1) ずつ変える
    このクローンを削除する
  end
  もし <[たま v] に触れた> なら
    [スコア v] を (1) ずつ変える
    このクローンを削除する
  end
end
      

旗のスクリプト(その1):

@greenFlag が押されたとき
[スコア v] を [0] にする
[ライフ v] を [3] にする
大きさを (60) %にする
隠す
ずっと
  (2) 秒待つ
  [自分自身 v] のクローンを作る
end
      

旗のスクリプト(その2):

@greenFlag が押されたとき
ずっと
  もし <(ライフ) = [0]> なら
    すべてを止める
  end
end
      
ライフが0になるとゲームが止まる。旗を押して確かめよう!
16

弾の数に制限をつけよう

🔵
たま
たまのプログラムを変えるよ

まず変数 「弾数」 を作ろう。変数パレットの「変数を作る」をクリックして、名前を「弾数」にしよう。

旗のスクリプトに 「弾数を10にする」 を追加しよう:

[弾数 v] を [10] にする
      

次に、ずっとの中を書き換えよう。「もし弾数 > 0なら」 で囲って、弾がある時だけ撃てるようにするよ。

  もし <(弾数) > [0]> なら
  end
      

そして、スペースキーの中に 「弾数を-1ずつ変える」 を追加するよ。

[弾数 v] を (-1) ずつ変える
      

たまの完成プログラム(この時点):

旗のスクリプト:

@greenFlag が押されたとき
[弾数 v] を [10] にする
[ねこ v] へ行く
隠す
ずっと
  もし <(弾数) > [0]> なら
    もし <[スペース v] キーが押された> なら
      [弾数 v] を (-1) ずつ変える
      [自分自身 v] のクローンを作る
      <<[スペース v] キーが押された> ではない> まで待つ
    end
  end
end
      

クローンのスクリプト(変わらないよ):

クローンされたとき
[マウスのポインター v] へ向ける
表示する
<[端 v] に触れた> まで繰り返す
  (15) 歩動かす
end
このクローンを削除する
      
弾は10発だけ。むだ撃ちはできない! 旗を押して確認してみよう。
17

弾を補充しよう

🎈
Balloon1
風船のプログラムを変えるよ

風船に当てたら 弾が3発 もどってくるようにしよう。

クローンの「たまに触れた」の中に追加しよう:

[弾数 v] を (3) ずつ変える
      
風船を当てると弾が3発もどってくる。当て続ければ弾切れしない!

Balloon1 の完成プログラム(この時点):

クローンのスクリプト:

クローンされたとき
x座標を (220) 、y座標を ((-120) から (120) までの乱数) にする
表示する
ずっと
  x座標を (-3) ずつ変える
  もし <(x座標) < [-230]> なら
    [ライフ v] を (-1) ずつ変える
    このクローンを削除する
  end
  もし <[たま v] に触れた> なら
    [スコア v] を (1) ずつ変える
    [弾数 v] を (3) ずつ変える
    このクローンを削除する
  end
end
      
18

効果音をつけよう

🎈
Balloon1
風船に音をつけるよ

Balloon1の音タブ「Pop」 を追加しよう(音ライブラリから探してね)。

クローンの「たまに触れた」に音のブロックを追加しよう:

  もし <[たま v] に触れた> なら
    [Pop v] の音を鳴らす
    [スコア v] を (1) ずつ変える
    [弾数 v] を (3) ずつ変える
    このクローンを削除する
  end
      
風船に当たったとき「Pop」の音が鳴るようになった!ゲームが楽しくなるね。

Balloon1 の完成プログラム(この時点):

クローンのスクリプト:

クローンされたとき
x座標を (220) 、y座標を ((-120) から (120) までの乱数) にする
表示する
ずっと
  x座標を (-3) ずつ変える
  もし <(x座標) < [-230]> なら
    [ライフ v] を (-1) ずつ変える
    このクローンを削除する
  end
  もし <[たま v] に触れた> なら
    [Pop v] の音を鳴らす
    [スコア v] を (1) ずつ変える
    [弾数 v] を (3) ずつ変える
    このクローンを削除する
  end
end
      
19

罠バルーンを追加しよう

ゲーム画面イメージ
スコア 8
ライフ 2
🐱
🎈
🎈
🎈
💀
罠バルーン
罠バルーンのプログラムを作るよ

風船スプライトを複製して、色を赤や黒に変えよう。音タブに 「Pop」 も追加してね(Balloon1と同じ)。

@greenFlag が押されたとき
大きさを (60) %にする
隠す
ずっと
  ((3) から (6) までの乱数) 秒待つ
  [自分自身 v] のクローンを作る
end

クローンされたとき
x座標を (220) 、y座標を ((-120) から (120) までの乱数) にする
表示する
ずっと
  x座標を (-3) ずつ変える
  もし <(x座標) < [-230]> なら
    このクローンを削除する
  end
  もし <[たま v] に触れた> なら
    [Pop v] の音を鳴らす
    [弾数 v] を (-10) ずつ変える
    このクローンを削除する
  end
end
      
罠バルーンを撃つと弾が10発も減る! よく見て撃とう。
複製すると、プログラムもコピーされるよ。変えたいところだけ書き換えればOK。
💡

改造したゲームアイデア

テキストで作ったゲームを改造すると、こんなゲームにもなるよ!参考にしてみてね。

追加ミッション!

バルーンシューティングをもっとパワーアップさせよう。

Lv.1
ゲームオーバー画面を追加しよう
Lv.2
難易度を変えてみよう(スピード・出現間隔)
Lv.3
爆発エフェクトをつけよう
Lv.4
タイムアタックモードを作ろう
Lv.5
ステージ変化を追加しよう