0

我正在尝试在 C++ 中使用 wxWidgets 来使用 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);
    }
}

现在它打印“游戏结束!” 但我希望它打印存储在 mGame->GetScore() 中的变量,例如,如果在游戏结束时得分为 10,它应该显示在屏幕上:

“游戏结束!得分:10”

任何人都知道如何使用 wxDraw 在 wxWidgets 中做到这一点?

4

1 回答 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,并使用它来传递您的变量。

于 2013-10-14T22:26:11.830 回答