WxWidgets 绘制文本以在屏幕上打印变量

WxWidgets DrawText to Print a Variable on Screen

本文关键字:打印 变量 屏幕 绘制 文本 WxWidgets      更新时间:2023-10-16

我正在尝试在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);
    }
}

现在它打印"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,并且显然用它来传入你的变量。