WxWidgets DrawText для печати переменной на экране

0

Я пытаюсь использовать wxWidgets в C++, чтобы использовать DrawText, чтобы нарисовать строку, которая говорит "Game Over" для моей игры, а также отображает конечную оценку игры, которая является переменной int.

Вот мой код:

void CFunction::Draw(wxDC &dc)
{
    if (mGame != NULL && mGame->IsGameOver())
    {

        wxFont font(75, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false);
        dc.SetFont(font);
        dc.SetTextForeground(wxColour(221, 34, 34));
        dc.DrawText(L"GAME OVER!", 250, 100);
    }
}

Сейчас он печатает "GAME OVER!". но я хочу, чтобы он печатал переменную, хранящуюся в mGame-> GetScore(), поэтому, например, если оценка была 10 в конце игры, она должна отображаться на экране:

"ИГРА НАША! Оценка: 10"

Кто-нибудь знает, как это сделать в wxWidgets с помощью wxDraw?

Теги:
wxwidgets

1 ответ

1
Лучший ответ

Я понял:

if ( mGame != NULL && mGame->IsGameOver() )
{
    wstringstream str;
    str << L"GAME OVER! YOUR SCORE: "  << mGame->GetScore() << ends;

    wxFont font(45, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false);
    dc.SetFont(font);
    dc.SetTextForeground(wxColour(255, 102, 0));
    dc.DrawText(str.str().c_str(), 300, 200);
}

Вы должны использовать wstringstream и использовать это, чтобы, по-видимому, передать свои переменные.

  • 0
    Вы можете создать свою строку любым способом, каким захотите, но вам нужно как-то создать ее. wstringstream - совершенно правильный выбор (хотя я бы, вероятно, использовал wostringstream поскольку вы только пишете в него), но более быстрый и, возможно, более читаемый способ мог бы заключаться в использовании wxString::Format() .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню