ブロック崩しを作ろう

仕様を決める

概要:パドルでボールを打ち返し、画面の上に並んだブロックを消してゆく

素材の準備

素材はここからダウンロード

スクリプトブロックを組み上げる

スクラッチキャットは削除して、ボール・パドル・ブロックの画像をスプライトに追加しておく

ボールの動きを考える

  1. まずボールは一定の位置からある範囲のランダムな角度で発射され、壁に当たると跳ね返るように設定する
  2. パドルの動きを設定する
  3. ボールにパドルと当たった時の動きを追加する
    「端に着いたら跳ね返る」ではない跳ね返りを考えると
  4. ブロックの準備
    ブロックは、まず一つだけ設定した後複製して位置を変えていくとよい
    ボールに触れたら、表示を隠して、スコアを追加するようにすれば良いので
    まず、変数「スコア」をすべてのスプライトが参照可能な状態で追加する

    そして、最初のブロックにスクリプトを設定する

    後はこのスプライトを17個複製して、それぞれx方向50pxピッチ、y方向30pxピッチに設定してゆく
  5. 次にボールにブロックに当たった時の挙動を設定する
    反射方向は先ほどの、入射角と反射角を同じにする式を入れるとよい
    ブロックはたくさんあるので、当たり判定は色で判定するとスクリプトがシンプルになる
  6. 打ち返しを失敗したときの設定
    スプライトにwall.pngを読み込みステージの下端に配置する

    そしてボールにwallに当たった時の挙動を設定する

    最終的なボールのスクリプトブロックは以下のようになる
  7. 最後にゲームの終了判定を加える
    背景に色をつけ、その背景を2つ複製しておく
    そして、一つには「YOU WIN」もう一つには「GAME OVER」の文字を入れておく
    スクリプトには最初は通常の背景にしておき、スコアが18(=全部消せた)ならば背景を「YOU WIN」に
    「GAMEOVER」を受け取ったら、背景を「GAMEOVER」に切り替えて、スクリプトを止める

アレンジ

前回学習したクローンを使うと、スプライトは少なくてすむ
スクリプトは「ブロック」に設定する