有没有办法使用 SpriteBatch.DrawString 在屏幕上绘制长文本?我的意思是在屏幕末尾插入新行。
问问题
3609 次
2 回答
4
我建议查看XNAwiki - TextRendering。
于 2011-01-13T16:41:36.167 回答
2
插入新行是您必须自己计算的事情,这不是您使用 XNA 框架自动执行的操作,但是可以编写代码来执行此操作。
一种方法是获取要写入的字符串并一次移动一个单词并测量它,直到您获得足够的单词来填充您想要填充的任何区域的宽度。找到该宽度后,您可以更改要绘制的字符串的 Y 位置并移至下一行,或者在该点将新行字符插入字符串并开始计算应包含的字数在下一行。
需要注意的一点是,字符串操作很昂贵并且会产生大量垃圾,因此您应该尽量减少执行此类操作的次数。如果文本是静态的并且永远不会更改,那么最好在游戏运行时执行此操作并且永远不要再更改。
于 2011-01-13T16:46:40.373 回答