gpt4 book ai didi

C++ OpenGL Pong 球移动得太快

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:15 25 4
gpt4 key购买 nike

我正在尝试使用 opengl 在 C++ 中创建一个简单的乒乓球游戏。我在屏幕上显示了边框、 Racket 、球,它们都在移动,太棒了!问题是球即使以一个像素的速度也能闪电般地移动。

我正在更新它在名为 init 的回调函数中的位置,然后我将其传递给 glutIdleFunc,如下所示:glutIdleFunc(idle);

空闲函数如下:

void idle(){
ball.moveLeft();

glutPostRedisplay();
}

基本上我只是让它向左移动一个像素,但是,我猜 idle 被调用了很多,所以它移动得快如闪电。如何修复此错误?

如果您需要更多信息,请询问!

最佳答案

使用 GLUT 计时器每 16 毫秒启动一次 display() 回调:

void timer( int extra )
{
glutPostRedisplay();
glutTimerFunc( 16, timer, 0 );
}

int main( int argc, char **argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( ... );
glutInitWindowSize( ... );
glutCreateWindow( ... );
...
glutTimerFunc( 0, timer, 0 );
...
glutMainLoop();
return 0;
}

关于C++ OpenGL Pong 球移动得太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949441/

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