復習を兼ねて、ゲームプログラミングの館を見直していますが、そこで疑問に思ったことを質問させていただきます。
ゲームプログラミングの館にある「29.跳ね返りの考え方(物理)」でのことです。
ここでのプログラムで、特に跳ね返りの部分に関する記述は
if(flag==1){
time2 = GetNowCount() ; // 現在経過時間を得る
t = (double)(time2 - time1) / 1000.000;
v0= sqrt ( 2.000 * g * y_max); //初速度を計算
for(i=0;i<j;i++) //j回跳ね返った時の初速度
v0*=e; //eは反発係数
y = (int)((v0 * t - 0.500 * g * t * t ) * 480.000 / y_max);
if(y>=0)
DrawGraph( 320 , 480-32-y , image[8] , TRUE );
else{
DrawGraph( 320 , 480-32 , image[8] , TRUE );
time1=GetNowCount();
j++;
}
}
どのように行えばいいのでしょうか?
自分でも考えたのですが、限界となるy座標を指定し、それ以上になったら高さを元に戻す程度のことしかできず、
天井にぶつかっても、時間がたたないと落下してこないという状態になってしまいました。