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

Is it possible to precalculate the height of text to be printed in renpy?

Renpy 使用大量 python 和自定义代码,以便使用 say statement.

显示屏幕上显示的文本

在 运行 遇到 renpy 中 nvl mode 的一些麻烦后,我发现有必要知道屏幕上将显示多少行(考虑到字体大小,当然和文本的大小 window).

所以我的问题:

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

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

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

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

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() 实例。