Привет, я хочу установить лимит прокрутки текста в 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;
}
Кто-нибудь, помогите мне, как я могу решить часть прокрутки.Я не могу найти хорошее решение для этого.