C中按下按键后连续调用函数

标签 c function loops call

我希望能够在按下“a”键后调用移动螺旋桨的函数(OpenGL 工作)。这是我的设置:

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

我陷入了无限循环。我尝试过使用计时器功能,但我不确定如何正确实现它。我希望我的螺旋桨旋转并且在程序关闭之前不会停止。

编辑:程序应在检测到“q”键后关闭

最佳答案

游戏循环的工作原理如下:

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 有一个辅助函数来实现这一点,但实现可能是特定于平台的。

关于C中按下按键后连续调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40073250/

相关文章:

php - 我在哪里放置我的自定义类和函数在 Laravel 中

c++ - 将代码转换为数组并显示

javascript - 我很困惑名称是什么数据类型?函数数据类型或 boolean 数据类型,因为它会返回 boolean 值?

javascript - 查找对象数组内对象的索引

java - 创建一个输出目录的 Java 程序

c++ - if 中的多个语句是否与多个 if 相同?

c - 此 C 代码不断给我带来代码块段错误

python - 我如何与正在运行的进程通信?

javascript - node.js 和 Canvas ,gameloop 不同步

c - fread()、solaris 到 unix 的可移植性和未初始化值的使用