马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 烈林凤 于 2024-6-28 21:35 编辑
我本来想着今天就把“renpy进阶学习经验五”写出来的,但今天在技术群里帮一位群友解决了一个问题,我觉得这个问题非常有实用性,具有很高的参考价值,因此特别写一篇教程。
感谢@云 提供的问题以及拓展问题的解决方法,感谢@blackpineapple 提供的拓展问题的解决方法!感谢其他群友给出的想法!教程中均为我独自思考的过程
关于“如何在条bar的滑块上增加数字”的解决方法其实很简单,先写一个普通版的bar:
[RenPy] 纯文本查看 复制代码 bar:
xycenter(0.5,0.9)
xysize(1000,30)
value VariableValue("im_mo_xpos",range=1.0)
bar_invert False
bar_vertical False
这里使用了一个VariableValue行为,参考文档界面行为(action)、值(value)和函数 — Ren'Py 中文文档 (renpy.cn)
此时如果我们想要在bar上增加滑块,那就需要增加一个thumb:
[RenPy] 纯文本查看 复制代码 thumb "#FFFFFF"
这样我们就有了一个白色的滑块,此时需要在滑块上增加数字变量,那就需要使用到Text(),参考文档文本 — Ren'Py 中文文档 (renpy.cn):
[RenPy] 纯文本查看 复制代码 thumb Text("[im_mo_xpos]")
然后,现在问题出现了,如果使用了Text(),那会导致背景无法放置在上面,因为thumb后面无法接受两个图片参数,那我们此时就需要用到用到一个方法可以将多个图片放进去——使用Fixed,参考文档可视组件 — Ren'Py 中文文档 (renpy.cn):
[RenPy] 纯文本查看 复制代码 thumb Fixed("#000000ff"Text("[im_mo_xpos]"))
注意先后顺序,写在后面的会显示在上面,位置错位会导致文字无法显示
整体效果:
[RenPy] 纯文本查看 复制代码 bar:
xycenter(0.5,0.9)
xysize(1000,30)
value VariableValue("im_mo_xpos",range=1.0)
thumb Fixed("#000000ff"Text("[im_mo_xpos]"))
bar_invert False
bar_vertical False
注意,我所使用的是一个名为“im_mo_xpos”的浮点数变量,你可以将这个变量定义成任意变量,但请确保他是已经被定义过并且确实是可以由bar来控制的
拓展芝士:
“如何将环境变量的‘音量’放置在滑块上”的解决方法
这个方法主要从黑凤梨大大曾经的一篇帖子中获知——【2023暑假界面】第三周 (设置界面) - 经验教程 - RenPy中文空间
在这篇帖子中,她使用了一个名为“_preferences.get_volume()”的方法,但我在文档中并没有找到这个方法,于是我猜测,这可能是一个已经被弃用的方法,于是我开始在文档中寻找起来,终于找到了这两个——
环境设定配置 — Ren'Py 中文文档 (renpy.cn)
音频 — Ren'Py 中文文档 (renpy.cn)
即使用“preferences.get_mixer()”方法,这两种方法效果一样,因此请使用preferences.get_mixer()方法
而preferences.get_mixer()方法的使用方法是——preferences.get_mixer(“mixer”)
这个mixer指的是混音器,而常用的三种混音器的代指分别是:
(音效)audio、sound——sfx
(音乐)music——music
(语音)voice——voice
而所有音轨共同的混音器是——main(总音量)
用不同的混音器可以显示不同的音量,比如说如果想要显示音乐具体音量就这么写:
[RenPy] 纯文本查看 复制代码 thumb Fixed("#000000ff",Text("[preferences.get_mixer('music')]"))
当然,如果这么写,显示出来的是浮点数,并且非常长,我们需要将其转化为整值并加上百分比符号来表示音乐音量百分比:
[RenPy] 纯文本查看 复制代码 thumb Fixed("#000000ff",Text(str(int(preferences.get_mixer('music')*100))+"%"))
将数值乘100并转换为整值后转化为字符串,最后加上百分比,就大功告成了!
可是!这样的做法完全是在画蛇添足!
如果你并没有给音量设置最小值或是想要显示具体数值,那么完全没必要使用这个方法,你可以将bar的变量的最大值设置成100,然后用Text()显示变量时在最后加上一个百分比符号,这样显示出来的效果与上述方法制作出来的是一模一样的!
这样能为你节约不少的时间,没必要在这里浪费太多功夫(雕花技术max)
我们在下一篇帖子中再见!
|