如何在GLUT中安排功能

时间:2011-04-07 17:35:25

标签: opengl glut

我有一些从main函数调用的函数.Below是代码。

int main(int argc, char *argv[])

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);

    glutInitWindowSize (500, 500);

    glutInitWindowPosition (100, 100);

    glutCreateWindow("Game for Gamers");

    glutDisplayFunc(display_func);

    glutKeyboardFunc(keyboard);

    glutSpecialFunc(special);

    glutTimerFunc(50,refreshcheck,0);

    glutIdleFunc (animate);

    glutReshapeFunc (reshape);

    glutMainLoop();


    return 0;

}

这里“refreshcheck”首先调用我想在执行“display_func”函数后调用“refreshcheck”函数。如何调度它。我想在“refreshcheck”之前将游戏加载到内存中时先调用“display_func”执行函数函数,没有必要在游戏运行时在“display_func”之后调用“refreshcheck”,但这是第一次这很重要。

1 个答案:

答案 0 :(得分:1)

一般来说,你不应该在displayFunc中创建对象(正确地指出了dark_charlie)。但这只是不好的做法,仅此而已。

如果你需要碰撞检测,你应该让它与渲染同步,即从你的displayFunc(在它的结尾)调用它。

我想你想使用计时器的原因是要有恒定的步骤物理。这通常以另一种方式完成,使用gettimeofday()(或Windows上的GetTickCount())来获取时间,并且基于帧之间经过的时间,物理被称为N次。这将比使用GLUT定时器获得更好的精度,因为定时器只能精确到10毫秒,这在处理快速移动的物体时可能会很多,导致口吃。