Я пытаюсь использовать 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?
Я понял:
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 и использовать это, чтобы, по-видимому, передать свои переменные.
wstringstream
- совершенно правильный выбор (хотя я бы, вероятно, использовалwostringstream
поскольку вы только пишете в него), но более быстрый и, возможно, более читаемый способ мог бы заключаться в использованииwxString::Format()
.