想要实现能设置几种不同大小位置的对话框和文本框,然后在人物对话前调用“show”来展示。
但是在网上搜不到相应的方法,自己也琢磨了好久,想了几种办法是这样:



但是都会报错,而且调用show来展示不同的对话框也出现了错误(会直接展示字在画面上)
想知道是哪里出了问题😭
想要实现能设置几种不同大小位置的对话框和文本框,然后在人物对话前调用“show”来展示。
但是在网上搜不到相应的方法,自己也琢磨了好久,想了几种办法是这样:



但是都会报错,而且调用show来展示不同的对话框也出现了错误(会直接展示字在画面上)
想知道是哪里出了问题😭
关注引自免费微信小程序:皆我百晓生
要解决这个问题,你需要修改你的对话框的样式和布局。首先,我们需要定义一个全局变量dialog_size来存储对话框的宽度和高度。接下来,我们可以在setup函数中添加一个循环来为每个对话框选择合适的大小,并将其放入列表中。
import renpy
from renpy.utils import *
# 定义全局变量
dialog_size = {'large': [600, 400], 'medium': [300, 200], 'small': [200, 100]}
def setup():
global dialog_size
renpy.setup()
接着,在setup函数之后,我们将遍历所有对话框,将它们分配到适当的位置上。我们可以通过检查对话框的名称来确定其类型,并根据这个类型调整其大小。
for d in dialog:
if d.name == 'small':
size = dialog_size['small']
elif d.name == 'medium':
size = dialog_size['medium']
else:
size = dialog_size['large']
d.xsize = size[0]
d.ysize = size[1]
# 假设在这里应该添加显示对话框的逻辑
show(d)
在这个例子中,我们已经创建了一个全局变量dialog来表示所有的对话框。我们可以根据这些对话框的名称来决定它们的大小。然后,我们在循环中检查每个对话框的名称,从而确定其大小。如果你的对话框名称没有包含大小信息,那么你可能需要在显示对话框之前进行一些额外的工作。
此外,确保你在setup()函数中正确地设置了全局变量dialog_size。这通常是在初始化Ren'Py时完成的,因此它应该是全局可访问的。
global dialog_size
dialog_size = {'large': [600, 400], 'medium': [300, 200], 'small': [200, 100]}
最后,确保你的show()函数可以正确地接收对话框对象作为参数。例如,如果你想在一个特定的对话框上显示文本,你应该这样做:
def show(dialog):
text = "Hello, world!"
dialog.show(text)
如果你遇到任何错误,可能是由于你的代码结构不清晰或缺少必要的导入语句。请检查你的代码,看看是否遗漏了任何关键部分。