gpt4 book ai didi

c++ - 使用 GLUT 按键停止动画?

转载 作者:行者123 更新时间:2023-11-28 04:30:52 26 4
gpt4 key购买 nike

我设计了一个在坐标 x 中加速的 UFO。但是,我想停止动画 - 我的意思是当我按下空格键时增加 x 坐标。

我将 x 和 y 坐标定义为全局变量。

int xB = 0, yB = 0;

还有,这里是增量函数。

#if TIMER_ON == 1
void onTimer(int v) {

glutTimerFunc(TIMER_PERIOD / 30, onTimer, 0);
if (xB < (WINDOW_WIDTH / 2) - 80)
xB++;
if (xK < (WINDOW_WIDTH / 2) - 100)
xK += 2;
glutPostRedisplay(); // display()

}
#endif

我不知道要使用哪个 GLUT 函数来停止动画。

最佳答案

创建一个 glutKeyboardFunc()切换 isAnimating bool 值的回调。然后检查 onTimer() 中的 isAnimating

例如:

bool isAnimating = true;
void keyboard( unsigned char key, int x, int y )
{
if( ' ' == key )
{
isAnimating = !isAnimating;
}
}

void onTimer(int v)
{
glutTimerFunc(TIMER_PERIOD / 30, onTimer, 0);
if( isAnimating )
{
if (xB < (WINDOW_WIDTH / 2) - 80)
xB++;
if (xK < (WINDOW_WIDTH / 2) - 100)
xK += 2;
glutPostRedisplay(); // display()
}
}

在调用 glutMainLoop() 之前,不要忘记通过 glutKeyboardFunc(keyboard) 注册回调。

关于c++ - 使用 GLUT 按键停止动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52992680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com