为什么我的opengl 2D动画代码输出窗口不响应,而只显示动画的最终结果

问题描述

在视觉工作室上运行

我正在尝试编写代码,其中一行从屏幕的一侧到屏幕的另一侧。

#include<stdio.h>
#include<conio.h>
#include<windows.h>
#include<glut.h>
int x1,y1,x2,y2,tx,ty,a;
void myInit(void)
{
    glClearColor(0.0,0.0,0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0.0,500.0,400.0);
}
void mydisplay()
{    
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0,0.0);
    glPointSize(4.0);
    x1 = 10;
    y1 = 100;
    x2 = 100;
    y2 = 200;
    tx = 10;
    ty = 0;
    glBegin(GL_LInes);
    glVertex2i(x1,y1);
    glVertex2i(x2,y2);
    glEnd();

    //printf("press 1 to start ");
    //scanf_s("%d",a);
    _getch();

    for (int i = 0; i < 38; i++)
    {
        if (i % 2 == 0)
        {
            glClear(GL_COLOR_BUFFER_BIT);
            x1 += tx;
            y1 += ty;
            x2 += tx;
            y2 += ty;
            glBegin(GL_LInes);
            glVertex2i(x1,y1);
            glVertex2i(x2,y2);
            glEnd();
        }
    }

    glFlush();}
int main(int argc,char** argv)
{
    glutinit(&argc,argv);
    glutinitdisplayMode(gluT_SINGLE | gluT_RGB);
    glutinitwindowSize(640,480);
    glutinitwindowPosition(10,10);

    glutCreateWindow("TRANSLATION TRANFORMATION");

    myInit();
    glutdisplayFunc(mydisplay);
    glutMainLoop();

    return 0;
}

当我尝试运行代码时,它没有显示移动的动画行,而是显示了白色输出屏幕(无响应),当我给“ getch()”一个字符时,它直接显示代码的最终结果,该行应位于最后。 我还尝试创建一个永久的线以使线继续移动,以便可以看到它在移动,输出屏幕只是变成全白而没有响应。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)