我正在用 C++ 和 OpenGL 编写一个 3D 游戏。
我想做的是当玩家与物体碰撞时,屏幕上会出现一小段文字,然后几秒钟后消失。
我知道如何在碰撞时将文本本身绘制到屏幕上。我的问题是几秒钟后我不知道如何删除文本。
我目前正在使用此功能将文本绘制到屏幕上:
void Gui::drawStrokeText(_In_ const string& p_string, _In_ int p_x, _In_ int p_y, _In_ int p_z)
{
glPushMatrix();
glTranslatef(p_x, p_y, p_z);
glScalef(0.25f, -0.25f, p_z);
glColor4f(200/255.f, 200/255.f, 200/255.f, 128/255.f);
for (int i = 0; i < p_string.size(); ++i)
{
glutStrokeCharacter(GLUT_STROKE_ROMAN , p_string[i]);
}
glPopMatrix();
}
所以要澄清从屏幕上删除文本的更好方法是什么?
整个班级可以在这里找到