我正在尝试在屏幕上显示分数。以下代码工作正常:
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;
我尝试了几乎所有可以在网上找到的解决方案,但它们不起作用。可以看到整数转换成功,但是下面的渲染中出现了荒谬的字符。有什么解决办法吗?