繁体   English   中英

Glut Open GL对象不会设置动画

[英]Glut Open GL object wont animate

我的多边形不会移动,我尝试了很多事情,我认为glClear(GL_COLOR_BUFFER_BIT); glutMainLoop(); 不会做他们的工作。 因此,第一张图片保持不变。 没有动画。

float x=0;
float y=0;
float b=0;

void displayCB(void) 
{
    glClear(GL_COLOR_BUFFER_BIT);
    kvadrat();
}

void kvadrat()
{
    glBegin(GL_POLYGON);
    glColor3f(1, 0, 0); glVertex2d(0.5-x, 0.5-y);
    glColor3f(1, 0, 0); glVertex2d(0.5-x, -0.5-y);
    glColor3f(1, 0, 0); glVertex2d(-0.5-x, -0.5-y);
    glColor3f(1, 0, 0); glVertex2d(-0.5-x, 0.5-y);
    glEnd();

    Sleep(1999);
    glFlush();
    x=x+0.01; // I modified this value so it will always be between 0.5 and -0.5,     
             //this is just example
}

int main(int argc, char *argv[])
{
    int win;

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB);
    glutInitWindowSize(800,600);

    win = glutCreateWindow("Elementi");

    glClearColor(0.0,0.0,0.0,0.0);

    glutDisplayFunc(displayCB);
    glutKeyboardFunc(keyCB);
    glutMainLoop();

    return 0;
}

我认为您可能每两秒钟仅以很小的增量移动位置,因此图像看起来是静态的,但不是,只是变化非常缓慢。 尝试取出Sleep(1999),看看动画是否效果更好。

如果需要随时间进行动画处理,最好改用glutGet(GLUT_ELAPSED_TIME)找出自上一帧以来已经经过了多少时间,并用它来缩放增量。

我修复了glutPostRedisplay();问题glutPostRedisplay(); //通知GLUT显示已更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM