スクラッチでボールが端にあたると跳ね返り、ボール同士がぶつかったときにも跳ね返るプログラムの見本です(実行するとボールは自動的に動き出します)。
まずは2つのボールをスプライトとして用意します。
見本では野球のボールとバスケットボールを使っています。
背景は何でもよいのですが、端にあたったときに跳ね返るプログラムにしているので、「Blue Sky2」のような上下左右に絵がないほうが見やすくてオススメです。
スプライトと背景が準備出来たら、プログラミング開始です。
2つのボールそれぞれにプログラムを組みますが、ここでは片方のプログラムを紹介します。
【プログラム解説】
最初にボールに角度をつけることでボールが斜めに動き出します。
「ずっと」の中の最初にあるのは、ボールを動かす動きと端で跳ね返るプログラムです。
「もし(Baseball)に触れたなら」から下がボール同士がぶつかったときの動き(跳ね返り方)のプログラムです。
そのときのボールの「向き」によって跳ね返る方向を計算する方法が違うのでで2つに分かれています。
現実に2つのボールがぶつかったときの跳ね返り方と、このプログラムでの跳ね返り方は違います。プログラムは、あくまでそれらしく見える動きです。
スクラッチのスプライトには「向き」があります。
右を向くのが90度、左を向くのが−90度で、真下が180度。
範囲は0度から180度(右側)と−1度から−180度(左側)です。
見本プログラムではこの向きを正反対にする計算を行っています。
正反対にすることで跳ね返っているように見せているのです。
プログラムの「180−向き×−1度に向ける」は、似てるようですが上と下では違います。
【上】はスプライトの元の角度(向き)がマイナス(0未満)なので、−1をかけてマイナスをプラスにしています。その後に180から引いているので、答えはプラスの数字となります。
【下】はスプライトの元の角度(向き)がプラス(0以上)なので、先に180からその数字を引いて。その後に−1をかけて、数字をマイナスに(向きを反対に)しています。
2つあるぼーつのうちバスケットボールのほうのプログラムを紹介しましたが、もうひとつの野球のボールのほうにも同じプログラムを組みます。
ただし、最初のボールに角度をつける数字(●●度回す)はバスケットボールと野球のボールで違っていてもOKです。それでは、ボールが跳ね返るプログラムに挑戦してみてください。