gpt4 book ai didi

c - 我如何在另一个函数中调用显示回调函数,以便我的定时器函数也可以执行?

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:07 25 4
gpt4 key购买 nike

我有一个绘制圆的显示函数,我有一个更新函数,我使用它沿 y 轴移动圆。一旦圆到达窗口底部,我想在顶部绘制一个新圆并以与前一个圆相同的方式移动该圆..我该怎么做?

void display(void)
{
int i;
flag=0;
glPointSize(2.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
disp2();
glFlush();
}


void update(int a)
{
if(y1center>=100)
{
y1center-=5;
glutPostRedisplay();
glutTimerFunc(40,update,0);
}
else
{
y1center=950;
glutDisplayFunc(display);
//glutPostRedisplay();
display();
}
}

这是我在更新功能中尝试做的,但没有用。它只是在顶部画了一个新的圆圈,但那个圆圈没有移动..disp2() 画圆

最佳答案

它可能会失败,因为您的更新函数不会告诉 glut 在 40 毫秒内再次调用更新函数(glutTimerFunc),所以一旦它进入 else 一旦更新函数不再执行任何操作。

无论如何,我做了一些小修改,这应该会使这项工作发生变化/创建以下更新功能:

void update(int a)
{
if(y1center>=100)
{
y1center-=5;
}
else
{
y1center=950;
}

glutTimerFunc(40,update,0);
glutPostRedisplay();
}

关于c - 我如何在另一个函数中调用显示回调函数,以便我的定时器函数也可以执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5687878/

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