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

[[Tonyu基礎練習]] - [[練習:数学と物理とゲーム]] - ''跳ね返るボール''

跳ね返るボール

跳ね返り係数

 下の図を見てください。

ball.png

 これは、ボールが右側に一定速度で移動した場合のボールの挙動を示しています。

 これを、ゲームに使用する場合には、跳ね返り係数kという変数を用意してあげることで表現できます。
跳ね返り係数kは0<k<1の値をとり、0の時にはボールは一切跳ね返らず、1の時に完全衝突と呼ばれ、ただ単に手から落した元の高さまで戻ってきます。
「k=2」のように設定すると、跳ね返るボールの高さはどんどん上がってゆき、「k=-1」のように設定するとボールは地面にめり込んでゆきます。

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();
}

演習問題

床にたたきつけたボールをシミュレートしよう

「床にたたきつける」とは「最初から速度を持っている」と言い換えることが出来ると思います。初速度をつけてあげましょう。

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>

答え


添付ファイル: fileball.png 290件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-11-14 (火) 21:24:37 (2352d)