以恒定速度自动移动2d圆

时间:2013-10-28 00:01:16

标签: c++ visual-studio-2010 visual-c++ opengl

我想在加载时以恒定速度自动移动opengl中的2d圆,然后用键盘控制它以平滑移动。

现在我有了使用键盘移动圆圈的代码,但每次按键时它只移动一个单位。

我希望在按下时按键和自动移动时运动平稳。

1 个答案:

答案 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示例,请告诉我。