sa63eng 2024-07-06 14:16 采纳率: 0%
浏览 75
已结题

如何实现在renpy中创建并应用不同大小尺寸对话框?

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

img

img

img

但是都会报错,而且调用show来展示不同的对话框也出现了错误(会直接展示字在画面上)
想知道是哪里出了问题😭

  • 写回答

26条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-07-06 14:16
    关注

    引自免费微信小程序:皆我百晓生

    要解决这个问题,你需要修改你的对话框的样式和布局。首先,我们需要定义一个全局变量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)
    

    如果你遇到任何错误,可能是由于你的代码结构不清晰或缺少必要的导入语句。请检查你的代码,看看是否遗漏了任何关键部分。

    评论 编辑记录
    1人已打赏

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月12日
  • 创建了问题 7月6日