画面にスコアを表示しようとしています。次のコードは正常に動作します。
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;
オンラインで見つけたほぼすべての解決策を試しましたが、うまくいきません。整数が正常に変換されていることがわかりますが、次のレンダリングにはおかしな文字があります。解決策はありますか?