ボールをブロックで壊すゲームです。ボールの動かし方や画面タッチでものを動かしたりすることができます。

学べること

  • ゲームスタート~Ballのスピードの応用~
  • ボールを跳ね返す~Headingの応用~
  • ブロックを崩す
  • ボールが壁に当たったら

部品

詳細設定

Button 「Text」→「スタート」
Label 「Text」→「ゲームオーバ」
「Visible」→「チェックを外す」
Canvas 「Height」→「400pixels」
「Width」→「Fill Parent」
ImageSprite1 「Picture」→「ブロックの画像」
「X」→「30」
「Y」→「60」
ImageSprite2 「Picture」→「ブロックの画像」
「X」→「170」
「Y」→「60」
ImageSprite3 「Picture」→「バーの画像」
「X」→「30」
「Y」→「300」
Ball 「Interval」→「1」
「Radius」→「10」
「X」→「140」
「Y」→「200」

ゲームスタート

  • Button
  • Ball
  • Label
  • ImageSprite
  • Logic
  • Math

から同じ部品を探してください。

ボールのスピードを5にすることで、ボールが動きだします。進む方向は「Heading=270」つまり真下です。
またボタンを押すとボタンが見えなくなっています。なぜなのか、そのブロックだけを外してみてください。
簡単にわかるはずです!!

テキストはすでに見えていなくて、ブロック画像はすでに見えていますが、後述する「ゲーム再開」のときに必要になるので
このブロックを組んでおいてください。

バーを動かす

  • Canvas
  • ImageSprite
  • Math

から同じブロックを選んでください。
オレンジ色の「get CurrentX」はすぐ上の赤枠からとりだしてください。

なぜ「-70」をするのか?

今まで出てきたX座標、Y座標は画像の左角の一点を指しています。
下画像参照

つまり「-70」をしないとタッチした場所にバーの左端がやってきてずれてしまうのです。
「70」という数字はバー画像の横サイズの半分の長さのことです。

ボールを跳ね返す

  • Ball
  • Imagesprite
  • Math — Random

から同じブロックを探してください。

Randomは指定した範囲の数字からランダムに数字を選びます。
今回は30から150の間からランダムに選ぶということです。

Headingはボールの進む方向です。数値は分度器をイメージしてもらうと分かりやすいです。
なぜ30から150なのかはHeadingの詳細を見てください!

ブロックを崩す

ifブロックはControlにあります。
ifの中身はゲームを再び始めるためのものです。
面倒であればなくても大丈夫ですが、ブロックが全部なくなっても、ボールは永遠に動きます。

もう一つのブロックも同じように作りましょう。
若干違うところがあるので注意です。

ボールが壁に当たったら

このゲームはバーより下にボールが落ちたらゲームオーバーというものです。なので画面の下側にボールが当たったらゲームオーバということです。
「edge=-1」は画面下側を意味しています。

完成!!

どうですか?今回はゲーム再開が難しいですね。まだそこまではいいやという方はそこは飛ばしてもいいと思います。
スマホで試してみましょう!!