有没有办法使用SpriteBatch.DrawString在屏幕上绘制长文本?我的意思是当到达屏幕的末尾时插入新行。
答案 0 :(得分:4)
我建议查看XNAwiki - TextRendering。
答案 1 :(得分:2)
插入新行是你必须自己计算的东西,这不是你自己使用XNA框架做的事情,但是是的,可以编写代码来做到这一点。
一种方法是将字符串想要写入并一次一个字地移动它,直到你得到足够的字来填充你想要填充的任何区域的宽度。找到宽度后,您要么更改要绘制的字符串的Y位置并移动到下一行,要么在该点处将新行字符插入字符串并开始计算应该的字数在下一行。
要注意的一点是,字符串操作很昂贵并且会产生大量垃圾,因此您应该尽量减少执行此类操作的次数。如果文本是静态的并且永远不会改变,那么在游戏运行期间执行此操作并且永远不会再这样做是理想的。