【发布时间】:2016-01-07 05:34:52
【问题描述】:
我正在使用 pyglet 制作游戏。在某些时候,该游戏将有一些“核心”RPG 规则的游戏内帮助/参考,以及描述等(游戏使用 Pathfinder SRD)。所以有长格式的文本(有不同的大小、颜色等)。 我打算提供的样式示例(将进行进一步格式化): In-game SRD
目前我正在使用 pyglet 的格式化文档模型(带有一些 python 生成的样式/格式字段的纯文本):
"""
{font_name 'Fontin'}{.align "center"}{bold True}{font_size 28}{italic True}{indent 0}{color (128,144,160, 223)}
The Title
{.align "left"}{bold False}{font_size 12}
Huge amount of text with further reformatting goes here...
And ends with a copyright notice (section 15 of OGL).
"""
- 如果我在 json 中存储文本(在类、种族等的特定键下),这个一次性处理可能需要几秒钟;在字典中的 .py (such as this one, with 5k lines) 正文中存储文本是值得的,有什么理由不这样做吗?
-
在运行时使用
pyglet.text.decode_attributed解码需要一些时间。但是考虑到完成后游戏参考可能会有一百个“页面”,运行前解码(解码整个字典或 json)将花费大量的游戏前时间。那么预解码,还是即时解码(这意味着如果我不制作有效的代码,某些文本可能会被冗余重新编码)? pyglet 上的线程不可靠... -
渲染和稍后切换
pyglet.text.layout.ScrollableTextLayout文档的内容在大块文本上需要 1-2 秒,如果文本之前未解码则更多; - 或者也许有任何 其他库 可用于在 pyglet 的上下文中呈现文本(进行一些调整)...但是,考虑一下,在当前格式中,我能够同时显示例如,“参考”视图中的全部内容或从中提取少量文本作为工具提示...
- 最后的一些注意事项:这里的性能很重要,因为我的目标是低规格的机器。该游戏将是图形 roguelike / 2d rpg,需要的不仅仅是 libtcod/curses,但不需要 3d 图形,这就是我现在使用 pyglet 的原因。但具体而言,格式化文本方面让我感到困扰。
【问题讨论】:
标签: python json pyglet formatted-text