2013-10-14 54 views
0

我想在C++中使用wxWidgets來使用DrawText繪製一個字符串,表示「遊戲結束」爲我的遊戲,並且還顯示結束遊戲得分這是一個int變量。WxWidgets DrawText在屏幕上打印變量

這裏是我的代碼:

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,它應該顯示在屏幕上:

「GAME OVER!Score:10」

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

回答

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()'。 –