使用 GLUT 使用键停止动画?
Stopping animation with a key using GLUT?
我设计了一个在坐标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 函数来停止动画。
创建一个切换isAnimating
布尔值的glutKeyboardFunc()
回调。 然后在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)
注册回调。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 使用 GLUT 使用键停止动画?
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- 使用对象数组对 SFML 进行动画处理
- (SFML)按下键时,播放器构造函数未使用正确的动画进行更新
- 如何减慢从 BVH 文件读取的 opengl 动画?
- 如何检测是否在缓冲绘画动画中绘制最后一帧?
- 从精灵表在 sfml 中为精灵制作动画
- OpenGL Glut显示功能在Mojave上显示黑屏
- GLUT 无法获得米利斯精度的时间
- Qt3D 骨骼动画
- ASCII 旋转光标 (TUI) 动画出现问题
- GLUT 问题:重新声明 c++ 内置类型'wchar_t'时出错
- 带有 std::cout 的多线程控制台文本动画
- 有没有办法像动画一样移动控制台窗口?
- 在macOS上编译GLEW和GLUT?
- 围绕特定轴对 qt3d 旋转进行动画处理
- 如何在Qt中设置围绕固定点的线的动画
- 无法在openGL和GLUT中为我想要的确切对象设置动画
- 编译分形动画程序Xlib和glut时出现问题