RenPy 对话框(跟随人物移动)

本文档介绍了如何在RenPy游戏引擎中模仿Alcot社的对话框,使其能够跟随人物移动。通过官方文档和论坛资源,提供两种实现方法:简单方法和创新思路。文章详细阐述了初始化过程,利用Loop标签读取对话框位置信息,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仿 Alcot 社的跟随人物移动的对话框实现


简单方法

# 定义一个灰色 800X200 的略透明对话框
image dialog:
    "#1e1e1e"
    size(800,200)
    alpha 0.8
# 利用 Loop 标签读取存放有对话框位置信息的 List
label loop(count=0,pos_list=[]):
    $ list_len = len(pos_list)-1
    show dialog:
        ease 1 pos(pos_list[count])
    show text "Loop [count]":
        alpha 0
        xanchor 0
        yanchor 0
        pos(pos_list[count][0]+20,pos_list[count][1]+20)
        pause 0.5
        linear 0.5 alpha 1.0
    # 将文本添加至历史记录
    $ narrator.add_history(kind="adv", who=narrator.name, what="Loop [count]")
    pause
    if count<list_len:
        call loop(count=count+1,pos_list=pos_list)
    return
    
label start:
    show dialog:
        pos(240,500)
    with dissolve
    pause
    $ pos_list = [(40,300),(240,500),(440,300),(240,500)]
    call loop(pos_list=pos_list)
    pause
    return

换个思路

  • 初始化
init python:

    game_width = 1280
    game_height = 720
    dialog_width = 800
    dialog_height = 200
    dialog_default_pos = (game_width/2-dialog_width/2,game_height-dialog_height-20)  #(240,500)

    class DialogMove(object):
        def __init__(self, start_pos=dialog_default_pos, end_pos=dialog_default_pos, start_zoom=(1.0,1.0), end_zoom=(1.0,1.0), speed=2, set_alpha=0.8):
            self.st = 0
            self.alpha = set_alpha
            self.speed = speed

            self.start_pos = start_pos
            self.end_pos = end_pos
            self.start_zoom = start_zoom
            self.end_zoom = end_zoom

            self.x_delta = float((self.end_pos[0]-self.start_pos[0])*self.speed)
            self.y_delta = float((self.end_pos[1]-self.start_pos[1])*self.speed)
            self.xzoom_delta = float(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值