Python 是否可以预先计算要打印的文本的高度?
Renpy使用大量python和定制代码,以便使用Python 是否可以预先计算要打印的文本的高度?,python,renpy,Python,Renpy,Renpy使用大量python和定制代码,以便使用say语句显示屏幕上显示的文本 在renpy中的nvl模式遇到一些问题后,我发现有必要知道屏幕上将显示多少行(考虑字体大小和文本窗口的大小) 所以我的问题是: 由于我在文档中没有找到与此相关的任何内容,我想知道是否有任何命令或其他可能性来预先计算要显示的文本的高度?get\u virtual\u layout()是text.py中的类文本的一部分 我是从text.py复制的: # Find the virtual-resolution layou
say语句显示屏幕上显示的文本
在renpy中的nvl模式遇到一些问题后,我发现有必要知道屏幕上将显示多少行(考虑字体大小和文本窗口的大小)
所以我的问题是:
由于我在文档中没有找到与此相关的任何内容,我想知道是否有任何命令或其他可能性来预先计算要显示的文本的高度?get\u virtual\u layout()
是text.py
中的类文本的一部分
我是从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
我认为这看起来很有希望
使用虚拟文本大小(宽度、高度),您可以使用文本窗口大小(宽度、高度)计算文本行
此外,还值得深入了解text.py
(例如def render(self、width、height、st、at)
),以了解虚拟布局的使用
我希望它能有所帮助
更新:
def render(…)
初始化虚拟布局,因此get_virtual_layout()
不再是任何布局,而是表示具有缩放宽度和高度的layout()
的实例。似乎存在虚拟文本大小。这对你有什么帮助吗?@rockstaid然后调用get_virtual_layout会使用它吗?我想是的。然后您可以在上面使用.width
或.height
。据我所知,它用于在打印之前计算文本大小。仅获取虚拟版面是不够的(如果使用此选项,返回的rv始终为空:$x=text(“Test text1”)$rv=x。获取虚拟版面()$vw,vh=rv.sizeSeedef render(…)
。它创建初始版面。Yepp步骤是:$x=text(“blah”)#$x.render(300300,0,0)#$rv=x.get_virtual_layout()#$vw,vh=rv.sizean仍然None
作为输出?没有修复它。实际上,$x.render设置获取虚拟_layout尝试检索的数组元素
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)