Как остановить прокрутку текста в Opengl - PullRequest
0 голосов
/ 24 сентября 2019

Привет, я хочу установить лимит прокрутки текста в Opengl.Когда я нажимаю кнопку «Вниз», прокрутка текста перемещается на бесконечное время, но я хочу, чтобы я набрал 250 цифр в тексте, и на этом месте прокрутка строк должна быть остановлена.это не будет двигаться вниз.

#include<fstream>
#include<iostream>
#include<stdlib.h>
#include<glut.h>

using namespace std;
float yr = 0;
GLfloat viewangle = 0, lx=0.0, lz = 0.0;

//identifiers
void introscreen();
void screen();

void specialKey(int key, int x, int y) {
    switch (key) {
    case GLUT_KEY_UP:
        translate += 1.0f;
        break;
    case GLUT_KEY_DOWN:
        translate -= 1.0f;
        break;
    case GLUT_KEY_LEFT:
        angle += 1.0f;
        break;
    case GLUT_KEY_RIGHT:
        angle -= 1.0f;
        break;
    }
    glutPostRedisplay();
}
void SpeedText() {

    GLfloat y;
    GLfloat y2;
    GLfloat fSize[5];
    GLfloat fCurrSize;
    fCurrSize = fSize[2];
    for (y = 0.0f; y <= 250.0f + yr; y += 5.0f) {
        glLineWidth(fCurrSize);
        glBegin(GL_LINES);
        glVertex3f(-200.0f, y + translate, 0);
        glVertex3f(-180.0f, y + translate, 0);
        glEnd();
        fCurrSize += 1.0f;
        introscreen();  
        if (y + translate >= 50) {
            printf("abc");
            break;
    }
    }

    }
void renderbitmap(float x1, float y1, void *font, char *string) {
    char *c;
    glRasterPos2f(x1, y1);
    for (c=string; *c != '\0'; c++) {
        glutBitmapCharacter(font, *c);
    }
}

void introscreen(void) {
    glColor3f(0, 1, 0);
    char buf[10] = { '\0' };
    for (int row = 0.0f; row <= 250+yr; row +=5.0f) {
        sprintf_s(buf,"%d", row);
        renderbitmap(-220, (translate +row), GLUT_BITMAP_TIMES_ROMAN_24, buf);
    }
 }
int main(int arg, char** argv) {
    glutInit(&arg, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(width, height);
    glutInitWindowPosition(50, 100);
    glutCreateWindow("HUD Lines");
    display();
    SpeedText();
    glutSpecialFunc(specialKey);
    glutMainLoop();
    return 0;
}

Кто-нибудь, помогите мне, как я могу решить часть прокрутки.Я не могу найти хорошее решение для этого.

...