3

我想在我的第一人称游戏中显示角色的名字(使用 DirectX 9 和 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 回答