- 追加された行はこの色です。
- 削除された行はこの色です。
- 跳ね返るボール へ行く。
//#kaisou
[[Tonyu基礎練習]] - [[練習:数学と物理とゲーム]] - ''跳ね返るボール''
**跳ね返るボール
**跳ね返り係数
下の図を見てください。
&ref(ball.png);
これは、ボールが右側に一定速度で移動した場合のボールの挙動を示しています。
これを、ゲームに使用する場合には、跳ね返り係数kという変数を用意してあげることで表現できます。&br;
跳ね返り係数kは0<k<1の値をとり、0の時にはボールは一切跳ね返らず、1の時に完全衝突と呼ばれ、ただ単に手から落した元の高さまで戻ってきます。&br;
「k=2」のように設定すると、跳ね返るボールの高さはどんどん上がってゆき、「k=-1」のように設定するとボールは地面にめり込んでゆきます。
//prog
ball.tonyu
extends SpriteChar;
k=0.8; //跳ね返り係数
vy=0; //初速度0
while(1){
if(y>=300) vy=(-1)*k*vy;
x++;
y=y+vy;
vy++;
update();
}
**演習問題
''床にたたきつけたボールをシミュレートしよう''
「床にたたきつける」とは「最初から速度を持っている」と言い換えることが出来ると思います。初速度をつけてあげましょう。
//prog
ball2.tonyu
extends SpriteChar;
k=0.8; //跳ね返り係数
vy=21; //初速度21
while(1){
if(y>=300) vy=(-1)*k*vy;
x++;
y=y+vy;
vy++;
update();
}
ここでは初速度を21に設定してあります。新しいオブジェクトを用意して、先ほどのball.tonyuとball2.tonyuの二つを比較してみましょう。
<table bgcolor=#ffddee><tr><td>
''練習問題''
<blockquote>上に投げ上げたボールのプログラムを書きなさい。跳ね返り係数kは0.75とする。
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591120Rseov9df81r3m2nF59e8v784jw5kfdr
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591118Rseov9df81r3m2nF59e8v784jw5kfdr
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591119Rseov9df81r3m2nF59e8v784jw5kfdr
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591121Rseov9df81r3m2nF59e8v784jw5kfdr
</blockquote>
</td></tr></table>
[[答え>練習:跳ね返るボール練習1]]