在DirectX 9 / c ++中绘制可读文本

时间:2012-06-11 12:37:19

标签: c++ text directx

我希望在我的第一人称游戏中使用DirectX 9和c ++显示角色的名字。我使用D3DXVec3Project在正确的位置绘制文本以获取屏幕坐标,但只是在那里用D3DXFONT显示文本并不是非常易读。它需要在下面有一个背景精灵(或其他一种呈现纹理的方式),以便文本颜色显示在背景之下。简而言之,我只想在浅色文字下面画一个暗盒纹理。

我想要与“Morrowind”截图顶部的文本框类似:http://nerdtrek.com/wp-content/uploads/2011/11/Morrowind-Screenshot.jpg

这样做的合理方法是什么?我尝试简单地加载精灵并将其绘制在那里,但即使我将它放在文本的位置上,我也真的需要能够任意拉伸它以匹配它伴随的文本串的长度。

非常感谢任何链接,推荐阅读或示例。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

您可以使用DT_CALCRECT标志调用ID3DXFont.DrawString。这应该返回绑定文本的矩形的宽度/高度,而不是绘制它。

使用这些信息,可以很容易地绘制你想要的任何精灵作为文本的背景。

希望这有帮助!