我用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).
"""
pyglet.text.decode_attributed
解码需要一些时间。但是考虑到当完成游戏引用时可能会有100个“页面”,在运行时之前解码(解码整个字典或json)将花费大量的游戏前时间。所以预解码,或者即时解码(这意味着有些文本,如果我不能生成一个有效的代码,可能会被冗余地重新编码)?线程在pyglet上不可靠。。。在pyglet.text.layout.ScrollableTextLayout
文档的内容在大文本块上需要1-2秒,如果文本之前没有解码,则需要更长时间
储存
如果我是您,我会将文本保持为原始格式,将其读入适当的
dictionary
结构中,然后将其转储到pickle二进制文件中。它的阅读速度和工作速度都非常快,而且占用的空间也更少。在解码
这是一件需要做的事情,不管怎样。
一开始只是简单的加载。。。进行初始设置的屏幕是可以的,但是以后你可以优化它,只加载一些初始的东西,然后在用户摆弄菜单或其他东西时在后台加载其余的内容。在
通常您无法序列化GL库的内容(某些部分可以序列化,但有时会很棘手)。
因此,最好的办法是将启动时需要加载的内容分开,然后将其余的打包成序列解码。在
皮格勒
现在,每个人都有自己的宗教信仰。我的是Python和Pyglet。
这么说,你确定你真的需要皮格莱特吗?我的意思是,如果你只处理文本,也许Pygame或者甚至像TkInter或Kiwy这样的UI工具包是更好的选择?在
Pyglet确实是多种多样的,可以轻松地处理复杂的事情,但它也是一项非常繁重、手工繁琐的工作。如果你要做一些以前没做过的疯狂的事情,这通常是有益的。例如,您自己的gfx引擎或自定义按钮,否则无法完成。在
二维
你提到这是一个要求,我不知道为什么,因为你是有远见的人。
但请看一看我昨天回答的另一个关于如何提高绩效的问题。在
它详细介绍了如何高效地呈现内容,以及如何设置一个sprite类,它可以很好地满足您的需要。在
我以前做过一个2d/side scroller/rpg游戏,也用过Pyglet,但这仅仅是因为比起使用其他预定义的库,我觉得手工繁琐的工作更轻松。
如果你知道为什么你不会后悔前面的努力,那就去做吧!但这是我们能给你的所有帮助,因为你实际上还没有要求任何代码帮助。在
祝你好运!在
相关问题 更多 >
编程相关推荐