【问题标题】:Drawing readable text in DirectX 9/c++在 DirectX 9/c++ 中绘制可读文本
【发布时间】:2012-06-11 12:37:18
【问题描述】:

我想在我的第一人称游戏中将角色的名字显示在他们的头上(使用 DirectX 9 和 c++)。我正在使用 D3DXVec3Project 在适当的位置绘制文本以获取屏幕坐标,但仅使用 D3DXFONT 在此处显示文本不是很可读。它需要在下面有一个背景精灵(或其他呈现纹理的方式),以便文本颜色显示在背景中。简而言之,我只想在浅色文本下方绘制一个暗框纹理。

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

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

任何链接、推荐阅读或示例将不胜感激。感谢您的宝贵时间。

【问题讨论】:

    标签: c++ text directx


    【解决方案1】:

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

    使用此信息,应该很容易绘制您想要的任何精灵作为文本的背景。

    希望这会有所帮助!

    【讨论】:

    • 谢谢!!!我误解了 DT_CALCRECT 是如何工作的,而这正是我所需要的。我现在已经完成了名称和工作健康条。如果可以的话,我稍后会为尝试做同样事情的人发布一些示例代码。
    猜你喜欢
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多