-2

我有一个使用 openGL、GLUT、GLUI 模拟碰撞(圆圈)的程序。一切正常,但是当我稍微更改代码时,它开始做一些奇怪的事情。

我有 2 个按钮,“play”和“step”,“play”模拟了用计时器更新的碰撞,“step”也模拟了但你必须点击它才能走得更远。

最初它是这样做的,但现在“播放”按钮的作用与“步骤”相同。如果我在我的计时器回调中添加一个 printf ,它就会完美地工作......

我能做些什么 ?

在我的 timer_cb 中,我只有:

 // printf("something\n");
 glutPostRedisplay();
 glutTimerFunc(getDeltaT(), timer_cb, 0);
4

1 回答 1

1

I/O 例程,如 printf,通过调用它们引入了合理的延迟。为了回答一定程度的正确性,您向我们展示了用户界面代码,但我想我可以猜到......

你在使用线程吗?也许它可能是一个并发错误,因为按钮事件处理程序的执行与更新逻辑不同步?

于 2012-05-09T19:33:50.993 回答