【问题标题】:BitmapFont get string by bounds?BitmapFont 越界获取字符串?
【发布时间】:2014-02-12 04:44:29
【问题描述】:

对不起,我对 libgdx 有点陌生(到目前为止真的很喜欢它!),所以可能是一个有点入门的问题

我正在为我的 RPG 游戏实现一个对话框类。基本上,当人们说话时,我会让它像您在最终幻想游戏中看到的那样逐个字符地显示。通过使用 BitmapFontCache 类,我让它在自动换行方面工作得非常好。我的下一步是实现“分页”。 (即,您将一个字符串传递给对话类进行显示,它确定字符串的哪些部分可以适合每一页对话)。我在不求助于计算我自己的自动换行的情况下遇到了一些麻烦。

是否有一个函数可以传递对话框的约束(比如一个矩形)并取回适合该约束的字符串部分? (考虑到自动换行+结束行等)。我可以逐个字符循环并使用 getWrappedBounds (然后在超过我的约束高度时停止),但我觉得在获取字符串部分时我仍然需要考虑自动换行。

有什么想法吗?

【问题讨论】:

    标签: java libgdx game-engine bitmap-fonts


    【解决方案1】:

    我有两个答案给你-

    首先,我认为这个函数可以满足您的需求:addWrappedText(java.lang.CharSequence str, float x, float y, float wrapWidth) (javadoc)。

    其次,您可能想考虑使用内置的 GUI 组件,而不是自己构建。我建议您查看scene2d ui,这是一个 libgdx 附带的库,可让您快速组合灵活的 GUI。设置需要一些工作,但它会在以后为您提供很多选择,因为您可以通过这种方式免费获得皮肤和九补丁之类的东西,所以我强烈建议您查看它。

    【讨论】:

    • 嗨,约翰,感谢您的回复。您的意思是逐个字符添加然后检查边界何时超出?难道我还不需要考虑自动换行吗? (比如说当它在一个单词的中间并且超出界限时,我希望那个单词换行到下一页)。
    猜你喜欢
    • 1970-01-01
    • 2014-07-31
    • 2023-03-14
    • 2016-03-01
    • 2012-12-01
    • 2014-11-18
    • 1970-01-01
    • 2011-12-13
    • 2018-09-11
    相关资源
    最近更新 更多