我正在使用opengl函数“drawtring”为我的游戏创建一个HUD。我已经设法成功地将字符串绘制到屏幕上,但是当涉及到显示诸如玩家位置或得分的浮点数时,我遇到了一个问题。
经过一番研究后,我发现抽绳只会接受常量字符。所以我然后尝试将浮点数转换或转换为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是我试图强制转换为char的浮点数。
答案 0 :(得分:1)
#include <stdio.h>
// ...
char buf[256];
snprintf(buf, sizeof(buf) - 1, "Pos: { %f, %f, %f }", pos.x, pos.y, pos.z);
DrawString(buf, &_vpos, &c1);