使用 glutBitmapCharacter() 屏幕闪烁?
Posted
技术标签:
【中文标题】使用 glutBitmapCharacter() 屏幕闪烁?【英文标题】:Screen flickering using glutBitmapCharacter()? 【发布时间】:2019-12-11 13:59:30 【问题描述】:我正在尝试使用 OpenGL 制作游戏。我的游戏运行良好,但我想显示分数。我设法使用 glutBitmapCharacter 显示它,但屏幕开始flickering。
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();
【问题讨论】:
我认为您不应该在每次想要重绘分数时调用 glClear。它应该在每个渲染过程中完成一次。 非常感谢,问题解决了! 【参考方案1】:“我认为你不应该在每次想要重绘分数时调用 glClear。它应该在每个渲染过程中完成一次”来自三。
这解决了问题。
【讨论】:
以上是关于使用 glutBitmapCharacter() 屏幕闪烁?的主要内容,如果未能解决你的问题,请参考以下文章
使用 glutBitmapCharacter() 绘制文本关闭 opengl 程序