0
我試圖在屏幕上顯示得分。下面的代碼工作正常:用int轉換LPCTSTR的Directx9字體更新
g_Font = NULL;
D3DXFONT_DESC f = {fontSize,
0,
400,
0,
false,
DEFAULT_CHARSET,
OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_PITCH,
fontName};
fontDesc = f;
fontPosition.top = top;
fontPosition.left = left;
fontPosition.right = right;
fontPosition.bottom = bottom;
text = t;
D3DXCreateFontIndirect(device,&fontDesc,&g_Font);
下面的部分是用於渲染每一幀:
g_Font->DrawText(NULL,
text,
-1,
&fontPosition,
DT_CENTER,
0xffffffff); //draw text
我想要做的是,在運行時更新文本。我只是更新文本變量,因爲繪製代碼爲每個幀運行,但它不起作用。一個簡單的文本工程,但以下建設不起作用:
const size_t buflen = 100;
TCHAR buf[buflen];
_sntprintf(buf, buflen - 1, TEXT("Point: %d"), point);
text = (LPCTSTR)buf;
我幾乎嘗試了我可以在網上找到的每個解決方案,但他們不工作。我可以看到整數轉換成功,但在下面的渲染中有荒謬的字符。任何解決方案
'pointLabel'從哪裏來?你不能簡單地用'DrawText'來表示你的新價值嗎? – emartel
是的,我可以,但它是另一個爲抽象而實施的類;所以這不是問題的關鍵。 – mtyurt
沒有我們告訴我們'pointLabel'上的'setText'是如何實現的,我們可以告訴你的是...'pointLabel'被渲染了嗎? – emartel