Я пытаюсь сделать игру, используя OpenGL. Моя игра работает хорошо, но я хочу показать счет. Мне удалось отобразить его с помощью glutBitmapCharacter, но экран начал мигать .
void drawBitmapText(char *string)
{
char *c;
glWindowPos3f(10,1000,0);
for (c=string; *c != '\0'; c++)
{
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, *c);
}
//glutPostRedisplay();
}
void AffichageScore(int scoreAafficher){
glClear(GL_COLOR_BUFFER_BIT);
std::string scoreSTR = std::to_string(scoreAafficher);
scoreSTR = "Score : "+scoreSTR;
int len = scoreSTR.length();
char scoreArray[len+1];
std::strcpy(scoreArray, scoreSTR.c_str());
drawBitmapText(scoreArray);
//glutSwapBuffers();
//glutPostRedisplay();
}
static void end(){
}
static void timer_callback(int)
{
move_trees();
move_floor();
score += 1;
printf("Score : %d \n",score);
//demande de rappel de cette fonction dans 25ms
glutTimerFunc(25, timer_callback, 0);
//vérifie la présence de collisions toutes les 25ms
bool verif_col=collisions();
if (verif_col==true){
int scoreFinal = score;
fin = true;
//AffichageScore(scoreFinal);
}
glutPostRedisplay();
//reactualisation de l'affichage
glutSwapBuffers();
}