python - 是否可以预先计算要在 renpy 中打印的文本的高度?

标签 python renpy

Renpy 使用大量 Python 和自定义代码,以便使用 say 语句 显示屏幕上显示的文本。

在 renpy 中的 nvl 模式 遇到一些麻烦后,我发现有必要知道屏幕上将显示多少行(考虑到字体大小,自然和大小文本窗口)。

所以我的问题:

由于我没有在文档中找到任何相关内容,我想知道是否有任何命令或其他可能性来预先计算要显示的文本的高度?

最佳答案

get_virtual_layout()text.pyclass Text 的一部分。

我从 text.py 复制了这个:

# Find the virtual-resolution layout.
virtual_layout = self.get_virtual_layout()
# The laid-out size of this Text.
vw, vh = virtual_layout.size

我认为这看起来很有希望。

使用虚拟文本大小(宽度、高度),您可以使用文本窗口大小(宽度、高度)计算文本行数。

pseudo code:
lines = int(vw/text_window.width)
#the text height would then be
text_height_needed = int(lines*vh)
# does it fit in completely
complete_text_in_window = text_window.height >= text_height_needed
# visible lines
visible_lines = int(text_window.height/vh)

此外,值得深入了解 text.py(例如 def render(self, width, height, st, at)),以便了解 virtual_layout 的使用。

希望对你有所帮助。

更新:

def render(...) 初始化虚拟布局,因此 get_virtual_layout() 不再是 None,而是表示 Layout()< 的一个实例 缩放宽度和高度。

关于python - 是否可以预先计算要在 renpy 中打印的文本的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41216752/

相关文章:

python - numpy,数组不同层的不同切片

python - 任意颜色条

python - 使用 python 递归删除 LDAP 子树

Python - 如何使这个不可 pickle 的对象可 pickle ?

java - Ren'py启动器: "Cannot find Java SE Runtime environment"

Python:最近邻(或最接近匹配)过滤数据记录(元组列表)

python - 使用 Python 3 打印时出现语法错误