私はdirectXの初心者ですが、これに問題があります。画面に文字列を描きたいのですが、うまくいきません。私はインターネットで検索しました、そして私はこれのためにいくつかのチュートリアルを手に入れました。これはコードです:
//Create font
void RealGame::CreateMyFont(LPDIRECT3DDEVICE9 d3ddv)
{
D3DXCreateFont(d3ddv, // the D3D Device
20, // font height
0, // default font width
FW_NORMAL, // font weight
1, // not using MipLevels
false, // italic font
DEFAULT_CHARSET, // default character set
OUT_DEFAULT_PRECIS, // default OutputPrecision,
DEFAULT_QUALITY, // default Quality
DEFAULT_PITCH | FF_DONTCARE, // default pitch and family
L"Arial", // use Facename Arial
&font);
}
//Draw text on screen
void RealGame::DrawGameInfo(LPD3DXSPRITE sp,LPDIRECT3DDEVICE9 d3ddv,LPCWSTR text)
{
RECT textbox;
SetRect(&textbox, 100, 100, 800, 20);
D3DCOLOR fontColor = D3DCOLOR_ARGB(255,0,0,255);
if(font!=NULL)
font->DrawText(sp, text, -1, &textbox, 0, fontColor );
}
結果は次のとおりです。画面にテキストが表示されません。理由を教えてください。間違いがある場合は訂正してください。ありがとうございました。
更新:フラグをDT_NOCLIPに変更した後| DT_TOP | DT_LEFT => font-> DrawText(sp、text、-1、&textbox、DT_NOCLIP | DT_TOP | DT_LEFT ,, fontColor); できます。助けてくれたGnietschowに感謝します。