重力を使用するこのゲームを実装していますが、ボールの重力をシミュレートする方法がわかりません。
ボールを「ドロップ」した直後に開始するタイマーがあり、オブジェクト ボールの垂直位置を設定する必要があります。
関連する機能は次のとおりです。
int ball->setVerticalPosition(int Y);
float timer->getTime();
ありがとうございました!
重力を使用するこのゲームを実装していますが、ボールの重力をシミュレートする方法がわかりません。
ボールを「ドロップ」した直後に開始するタイマーがあり、オブジェクト ボールの垂直位置を設定する必要があります。
関連する機能は次のとおりです。
int ball->setVerticalPosition(int Y);
float timer->getTime();
ありがとうございました!
わかりました、一般に、次の式で新しい位置 (pos_y) を計算します。
t = timer->getTime();
float pos_y = pos_y0 + v_0*t - 4.9 * t *t;
ball->setVerticalPosition(pos_y);
(v_0 は初期速度で、pos_y0 はボールの初期座標です)。あなたの場合、ボールを「ドロップ」していると言うので、おそらく v_0*t を削除した方がよいでしょう。pos_y0 は元の高さです (座標系によって異なります)。
いつ pos_y=0 かを確認することを忘れないでください (おそらくあなたの階です!)
重力は 9.8 で、式は「1/2*g*t*t」なので、4.9 を与えました。割って最終的な数を与えました。これは「メートル」単位であり、たとえばピクセルに変換する必要があります。