[Ren'Py 教程] 说话人高亮的超级简单教程
先上代码:
回调函数
这次使用到了角色回调函数(character callback)这个功能。这个功能可以在角色说话的时候,进行一些操作,比如一个角色说话的时候,发出“哔”的声音。
在这个教程中,我们用回调函数来确定是谁在说话。回调函数的具体例子还可以参考官方文档中,角色回调函数这个章节的代码。
代码如下:
和我们自己定义的函数active对比,我们的函数多传入了name这个参数。相应的,我们有个cb_name,来传这个参数。
回调函数只要在角色定义里使用,并且回调函数的参数,在角色定义里传入。名字为本来的名字,加上cb_这个前缀。比如我们的参数是name,这里就是cb_name. cb就是callback的缩写。
ConditionSwitch
基于Python条件表达式,改变自身显示内容的可视组件。固定位置入参应该是一组两个值的形式,每组分别包含:
包含Python表达式语句的字符串。
当条件表达式为True时显示的组件。
第一条为True的条件表达式会显示自己的可视组件,所以需要保证至少一个条件表达式永远为True。(摘抄自官方文档:可视组件(Displayables)这个章节)
在本教程中,其实是把不说话的角色变暗。
图像处理器
代码中用到了图像处理器,让原本图像变暗。
请参考文档图像处理器这一章节。Renpy支持丰富的图像变幻,比如变灰,变色,模糊,变亮等等。
扩展
ConditionSwitch可能满足不了你的需求,比如你的立绘非常复杂,Ren'py有叠层式图案(layered image)来替代ConditionSwitch,可以参考叠层式图案这一章节,如果大家有需要,之后也可以写点这方面的教程。
本教程的核心写法参考了论坛里一个提问的帖子,做了一些扩展和解释。
参考资料:
How do you give focus to one character portrait?
https://lemmasoft.renai.us/forums/viewtopic.php?t=43401