Как нарисовать текст на экране, используя glutBitmapCharacter () - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь нарисовать строку текста в моем игровом окне, используя функцию 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);
}

Ожидается нарисовать "Привет, мир". Однако реальный результат - "Привет"

...