0

重力を使用するこのゲームを実装していますが、ボールの重力をシミュレートする方法がわかりません。

ボールを「ドロップ」した直後に開始するタイマーがあり、オブジェクト ボールの垂直位置を設定する必要があります。

関連する機能は次のとおりです。

int ball->setVerticalPosition(int Y);
float timer->getTime();

ありがとうございました!

4

2 に答える 2

8

わかりました、一般に、次の式で新しい位置 (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 かを確認することを忘れないでください (おそらくあなたの階です!)

于 2012-12-06T11:20:58.200 に答える
3

重力は 9.8 で、式は「1/2*g*t*t」なので、4.9 を与えました。割って最終的な数を与えました。これは「メートル」単位であり、たとえばピクセルに変換する必要があります。

于 2012-12-06T11:33:27.553 に答える