我想在加载时以恒定速度自动移动opengl中的2d圆,然后用键盘控制它以平滑移动。
现在我有了使用键盘移动圆圈的代码,但每次按键时它只移动一个单位。
我希望在按下时按键和自动移动时运动平稳。
答案 0 :(得分:1)
使用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示例,请告诉我。