欢迎光临散文网 会员登陆 & 注册

[Ren'Py 教程] 说话人高亮的超级简单教程

2022-05-11 11:41 作者:黑凤梨BlackPineappl  | 我要投稿

先上代码:

回调函数

这次使用到了角色回调函数(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



[Ren'Py 教程] 说话人高亮的超级简单教程的评论 (共 条)

分享到微博请遵守国家法律