@Vladik_gal
Начинающий прогер

Светофор через glut c++, как сделать?

Нужно сделать светофор через glut, но, самая большая проблема, не могу использовать Sleep, т.к. при запуска программы висит белый экран как раз под время Sleep
#include <iostream>
#include <iostream>
#include <glut.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
void DrawGrass()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0, 1.0, 0.0);
    glBegin(GL_LINES);
    glVertex2f(250, 50); glVertex2f(260, 60);
    glEnd();

    glFlush();
}


void DrawTriangel()
{
    int a(0);
    glPointSize(150);
    glBegin(GL_POINTS);
    do
    {
        glColor3d(1, 0, 0);
        Sleep(1000);
        a++;
        glColor3d(0.25, 0, 0);
    } while (a < 1);

    if (a == 2)
    {
        glColor3d(0.25, 0, 0);
    }
    glVertex3d(350, 400, 0); // первая точка
    glColor3d(0.25, 0.25, 0);
    glVertex3d(350, 300, 0);   // вторая точка
    glColor3d(0, 0.25, 0);     // третья
    glVertex3d(350, 200, 0);

    
    
    

    glEnd();


    glFlush();
}


void DrawTriangell()
{
    //glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0, 1.0, 0.0);
    glBegin(GL_TRIANGLES);
    glVertex2f(100, 100);
    glVertex2f(150, 200);
    glVertex2f(200, 100);
    glEnd();

    glFlush();
}




int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(1000, 1000);
    glutCreateWindow("Place");
    glLoadIdentity();
    gluOrtho2D(0, 640, 0, 480);
    glutDisplayFunc(DrawGrass);             //Вызов функции отрисовки
    glutDisplayFunc(DrawTriangel);
    //glutDisplayFunc(DrawTriangell);
    glutMainLoop();

    return 0;
}
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ответы на вопрос 1
Gremlin92
@Gremlin92
Целеустремленный
Сделай 'a' глобальной, не забудь ее обнулять и убери sleep
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы