0
我使用opengl函数“drawstring”为我的游戏创建HUD。我已经成功地在屏幕上绘制了字符串,但是当涉及到显示诸如玩家位置或乐谱等浮点数的值时,我遇到了一个问题。将float值传递给glutBitmapString()?
经过一番研究,我发现drawstring只能接受const chars。所以我然后试图将一个浮点数转换或转换为一个char值,但我已经成功。
这是我的抽绳方法
void Player::DrawString(const char* text, const Vector3* position, const Color* color)
{
glPushMatrix();
glDisable(GL_TEXTURE);
glDisable(GL_LIGHTING);
glDisable(GL_DEPTH_TEST);
glColor3f(1.0f, 1.0f, 1.0f);
glTranslatef(position->x, position->y, position->z);
glRasterPos2f(0.0f, 0.0f);
glutBitmapString(GLUT_BITMAP_TIMES_ROMAN_24, (unsigned char*)text);
glEnable(GL_LIGHTING);
glEnable(GL_TEXTURE);
glEnable(GL_DEPTH_TEST);
glPopMatrix();
}
,这是我的方法调用
Color c1 = {0.0f, 0.0f, 0.0f};
DrawString("Player Pos: ", &_vpos, &c1);
Vector3 vspeed = {20.0f, 0.0f, 500.0f};
Color c = {1.0f, 1.0f, 1.0f};
DrawString(cpp, &vspeed, &c1);
CPP是我试图转换为字符的浮动。
Casting!=转换。你的目标是什么?它是创建一个浮点值的字符串版本吗? – PaulMcKenzie
另外,请注意,OpenGL没有任何字符串绘图功能。它有GLUT。了解OpenGL和GLUT之间的区别很重要! – user1118321