我使用pyglet製作遊戲。在某些時候,這款遊戲會有一些遊戲內的幫助/參考一些「核心」RPG規則,以及其他描述(遊戲使用Pathfinder SRD)。所以有很長的格式文本(具有不同的大小,顏色等)。 (產生有一些蟒蛇純文本樣式/格式字段) In-game SRD在Python中呈現格式化文本(目前使用pyglet)
目前我使用pyglet的格式化文檔模型: (進一步的格式將進行)我的目標提供了風格的一個例子:
"""
{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。但格式化的文本方面,特別是,讓我感到困擾。