Я пытаюсь нарисовать строку текста в моем игровом окне, используя функцию glutBitmapCharacter (), однако текст рисует только первое слово. Я предполагаю, что это означает, что функция glutBitmapCharacter () видит пробел в качестве конечной точки.
Может ли кто-нибудь помочь мне нарисовать строку текста, содержащую пробелы?
Это мой первый вопрос о переполнении стека, надеюсь, он не слишком расплывчатый или не получил ответа раньше.
//Below is the check I am using for spaces and attempting to draw this space
char space = ' ';
if(i == space)
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24,space);
else
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24,s[i]);
//The text I am trying to write to screen (global for testing)
string message = "hello world";
//The function for drawing text
void drawString(void* font, float x, float y, string s)
{
glRasterPos3f(x, y, 0.0);
for (char i = 0; i < s.length(); ++i)
{
char space = ' ';
if(i == space)
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24,space);
else
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24,s[i]);
}
}
//the draw function
void draw()
{
if (message.length() > 0)
drawString(GLUT_BITMAP_HELVETICA_18, mouseX, mouseY, message);
}
Ожидается нарисовать "Привет, мир". Однако реальный результат - "Привет"