对话中的各种事件发生时,Ren’Py都有能力执行回调函数。
这是通过将 callback 入参传入 Character() 函数或设置 config.character_callback 和 config.all_character_callbacks 配置项实现的。
调用角色回调函数时传入唯一的固定位置参数,即发生的事件消息。可能的事件消息包括:
调用回调函数时至少包含一个关键词入参:
其他的固定位置入参和额外的关键词入参值可能会在后面用到。回调函数不能理解的参数就忽略。
这个样例播放“哔-”代替角色语音,前提是慢速文本启用:
init python:
def beepy_voice(event, interact=True, **kwargs):
if not interact:
return
if event == "show_done":
renpy.sound.play("beeps.ogg")
elif event == "slow_done":
renpy.sound.stop()
define pike = Character("克里斯托弗·派克", callback=beepy_voice)
label start:
pike "在Talos IV附近逛逛,整整我自己的生意,只要……"