對話中的各種事件發生時,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附近逛逛,整整我自己的生意,只要……"