ピンポンゲームやブロック崩しなどボールを使ったゲームでは、パドルを使ってボールを跳ね返すのが特徴ですよね。
スクラッチでプログラミングするときに、ボールの跳ね返り方について知りたいという人がとても多いです。
こちらでは、スクラッチのプログラミングでボールの跳ね返り方を4つ紹介します。
- ランダムでボールを跳ね返す作り方
- 入射角と同じ角度(反射角)でボールを跳ね返す作り方
- 入射した方向へボールを跳ね返す作り方
- パドルに当たった位置からランダムでボールを跳ね返す作り方
ランダムでボールを跳ね返す作り方
こちらが、「ランダムでボールを跳ね返す」プロジェクトです。
左右矢印キーで上下のパドルが左右に動き、上下矢印キーで左右のパドルが上下に動きます。
ランダムでボールを跳ね返すプログラム
ランダムでボールを跳ね返すプログラムは、スプライト「ピンポン玉」のプログラムに作っています。
(画像をクリックすると大きくなります。)
- パドル(上)に触れたら、「135から225までの乱数」度に向ける
- パドル(下)に触れたら、「-45から45までの乱数」度に向ける
- パドル(左)に触れたら、「45から135までの乱数」度に向ける
- パドル(右)に触れたら、「-45から-135までの乱数」度に向ける
(画像をクリックすると大きくなります。)
こちらの例では、乱数の値をこのように設定していますが、ボールを跳ね返したい角度の範囲は、自由に設定してください。
ただし、あまり広角すぎると、ボールがパドルにくっついて離れない状態になることがありますので、注意しましょう。
入射角と同じ角度(反射角)でボールを跳ね返す作り方
こちらが、「入射角と同じ角度(反射角)でボールを跳ね返す」プロジェクトです。
入射角と同じ角度(反射角)でボールを跳ね返します。
入射角と同じ角度(反射角)でボールを跳ね返すプログラム
(画像をクリックすると大きくなります。)
こちらが、入射角と同じ角度(反射角)でボールを跳ね返すプログラムです。
(画像をクリックすると大きくなります。)
スプライト「パドル(上)」「パドル(下)」の反射角(=入射角)の求め方は、以下になります。
(画像をクリックすると大きくなります。)
スプライト「パドル(左)」「パドル(右)」の反射角(=入射角)の求め方は、以下になります。
入射角と同じ角度(反射角)でボールを跳ね返すプログラムは、規則性のある動きをするので、面白みに欠ける場合があります。
入射した方向へボールを跳ね返す作り方
こちらが、「入射した方向へボールを跳ね返す」プロジェクトです。
入射した方向へボールを跳ね返します。
入射した方向へボールを跳ね返すプログラム
(画像をクリックすると大きくなります。)
こちらが、入射した方向へボールを跳ね返すプログラムです。
(画像をクリックすると大きくなります。)
スプライト「パドル(上)」「パドル(下)」「パドル(右)」「パドル(左)」とも、反射した向きの求め方は、以下になります。
こちらは、正直ピンポンゲームやブロック崩しゲームには向きません。
パドルに当たった位置からランダムでボールを跳ね返す作り方
こちらが、「パドルに当たった位置からランダムでボールを跳ね返す」プロジェクトです。
パドルに当たった位置からランダムでボールを跳ね返します。
パドルに当たった位置からランダムでボールを跳ね返すプログラム
(画像をクリックすると大きくなります。)
こちらが、パドルに当たった位置からランダムでボールを跳ね返すプログラムです。
こちらでは、パドルに当たる位置を以下の3つの条件で分けています。
- ピンポン玉のx座標(y座標)とパドルのx座標(y座標)が同じとき
- ピンポン玉のx座標(y座標)がパドルのx座標(y座標)より大きいとき
- ピンポン玉のx座標(y座標)がパドルのx座標(y座標)より小さいとき
(画像をクリックすると大きくなります。)
こちらは、パドル(上)に触れたときのプログラムです。
ピンポン玉のx座標とパドルのx座標が同じときの角度は、以下で求めています。
これは、入射角=反射角の求め方でしたよね。
ピンポン玉がぴったりパドルの中心に来たときは、同じ角度で跳ね返します。
【パドル(右)(左)】角度=-1 × 「向き」ブロック
「パドル(下)」「パドル(右)」「パドル(下)」もパドルの中心に来たときは、同じ角度で跳ね返すようにプログラミングしています。
ピンポン玉のx座標がパドルのx座標より「大きいとき」と「小さいとき」は、パドルの中心から左右にランダムの角度を設定しています。
ボールを跳ね返したい角度の範囲は、自由に設定してもOKですが、こちらもあまり広角すぎると、ボールがパドルにくっついて離れない状態になることがありますので、注意しましょう。
(画像をクリックすると大きくなります。)
「パドル(下)」「パドル(右)」「パドル(下)」もそれぞれに合わせた角度で調整しています。
まとめ
今回、スクラッチのプログラミングでボールの跳ね返り方を4つ紹介しました。
工夫次第で色々なボールの跳ね返し方があります。