将浮点值传递给glutBitmapString()?

时间:2014-05-04 17:18:26

标签: c++ opengl glut

我正在使用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的浮点数。

1 个答案:

答案 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);