在C中按下键后连续调用功能

时间:2016-10-16 17:31:20

标签: c function loops call

我希望能够在按下' a'之后调用我的功能来移动我的螺旋桨(OpenGL工作)。键。这就是我设置的内容:

switch (key)
{
    case 'a':
        startShip = 1;
        while (1 (&& startShip == 1)) {
            spinPropeller();
        }
}

我陷入无限循环。我尝试过使用定时器功能,但我不确定如何正确实现它。我希望我的螺旋桨旋转,直到程序关闭才停止。

编辑:程序应在检测到' q'之后关闭。键

1 个答案:

答案 0 :(得分:2)

游戏循环的工作方式如下:

while (true)
{
    get_input();   // get keyboard, mouse, and joystick input

    move_items();  // update the player position and all other items in the game, fire weapons, and update game state

    collision_detection();  // figure out what hit what and update game state

    render();   // draw your OpenGL scene
}

要实现这一点,您的get_input函数或等效函数需要以非阻塞方式读取键盘状态。我认为OpenGL或GLUT有一个辅助功能,但实现可能是特定于平台的。