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