このWikiは古くなりました:新しいWikiへ移動


//#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]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS