3

一人称ゲームでキャラクターの名前を頭上に表示したい(DirectX9とc++を使用)。D3DXVec3Projectを使用して適切な場所にテキストを描画して画面座標を取得していますが、D3DXFONTを使用してテキストを表示するだけではあまり読みやすくありません。テキストの色が背景に表示されるように、下に背景スプライト(またはテクスチャを表示する他の方法)が必要です。つまり、明るい色のテキストの下に暗いボックスのテクスチャを描画したいだけです。

「Morrowind」のこのスクリーンショットの上部にあるテキストボックスに似たものが欲しいです:http://nerdtrek.com/wp-content/uploads/2011/11/Morrowind-Screenshot.jpg

これを行うための合理的な方法は何でしょうか?スプライトを読み込んでそこに描画してみましたが、テキストの位置の中央に配置しても、付随するテキストの文字列の長さに合わせて任意に伸ばすことができる必要があります。

リンク、推奨読書、または例をいただければ幸いです。御時間ありがとうございます。

4

1 に答える 1

2

DT_CALCRECT フラグを指定してID3DXFont.DrawStringを呼び出すことができます。これにより、テキストを描画せずに、テキストを囲む四角形の幅/高さが返されます。

この情報を使用すると、テキストの背景として必要なスプライトを簡単に描画できます。

お役に立てれば!

于 2012-06-11T13:11:21.407 に答える