-1
我想在負載上以恆定速度自動移動一個在opengl中的2D圈,然後用鍵盤控制它以平穩移動。以恆定速度自動移動2D圈
現在我已經有了用鍵盤移動圓圈的代碼,但是它對於每個按鍵只移動一個單位。
我希望按鍵時的平滑移動和裝載時的自動移動。
我想在負載上以恆定速度自動移動一個在opengl中的2D圈,然後用鍵盤控制它以平穩移動。以恆定速度自動移動2D圈
現在我已經有了用鍵盤移動圓圈的代碼,但是它對於每個按鍵只移動一個單位。
我希望按鍵時的平滑移動和裝載時的自動移動。
使用glTranslatef移動物體,或者您可以在按下鍵盤按鍵時,在每個更新週期中將其位置x,y,z調整一個設定量。
E.g
const float MOVE_AMOUNT = 5.0;
public void Update()
{
if (Keyboard.IsKeyDown("a"))
circle.position.x -= MOVE_AMOUNT;
else if (Keyboard.IsKeyDown("d"))
circle.position.y += MOVE_AMOUNT;
}
注意:這不是有效的C++語法,但它給你所需要的是做整體的邏輯,你應該能夠從這個數字出來。如果你想要一個glTranslate例子,請讓我知道。
我還會傳遞自上一幀以來經過的秒數,並將其與移動量相乘以得到與幀率無關的運動:'public void Update(const double&time)'和'circle.position.x - = MOVE_AMOUNT * time;'時間將是0.0xx。 – Skalli