我设计了一个UFO,它的坐标为x。但是,我想停止动画-我的意思是按空格键时增加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功能来停止动画。
答案 0 :(得分:1)
创建一个glutKeyboardFunc()
回调以切换isAnimating
bool。然后在isAnimating
中检查onTimer()
。
例如:
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()
}
}
在致电glutKeyboardFunc(keyboard)
之前的某个时候,别忘了通过glutMainLoop()
注册回调。