本帖最后由 梧桐潋影 于 2023-5-11 12:57 编辑
在b站上找到了大佬的教程
https://www.bilibili.com/read/cv17724961
补充一下我自己的代码给其他搜到这个问题的朋友参考
这里是options.rpy里面增加的代码
[RenPy] 纯文本查看 复制代码 ## 音量初始值 0为没声音,1为最大声音,0.5在中间。
define config.default_music_volume = 0.3
## 音效果初始值
define config.default_sfx_volume = 1
## 语音初始值
define config.default_voice_volume = 1
这里是screens.rpy里面设置界面部分的代码,从textbutton _("恢复初始音量"):开始是新增的代码,selected judge_default_volume() 是用来阻止这个按键一直保持选中状态的
[RenPy] 纯文本查看 复制代码 screen preferences():
tag menu
use game_menu(_("设置"), scroll="viewport"):
vbox:
hbox:
box_wrap True
if renpy.variant("pc") or renpy.variant("web"):
vbox:
style_prefix "radio"
label _("显示")
textbutton _("窗口") action Preference("display", "window")
textbutton _("全屏") action Preference("display", "fullscreen")
vbox:
style_prefix "check"
label _("快进")
textbutton _("未读文本") action Preference("skip", "toggle")
textbutton _("选项后继续") action Preference("after choices", "toggle")
textbutton _("忽略转场") action InvertSelected(Preference("transitions", "toggle"))
## 可在此处添加 radio_pref 或 check_pref 类型的额外 vbox,以添加
## 额外的创建者定义的偏好设置。
null height (4 * gui.pref_spacing)
hbox:
style_prefix "slider"
box_wrap True
vbox:
label _("文字速度")
bar value Preference("text speed")
label _("自动前进时间")
bar value Preference("auto-forward time")
vbox:
if config.has_music:
label _("音乐音量")
hbox:
bar value Preference("music volume")
if config.has_sound:
label _("音效音量")
hbox:
bar value Preference("sound volume")
if config.sample_sound:
textbutton _("测试") action Play("sound", config.sample_sound)
if config.has_voice:
label _("语音音量")
hbox:
bar value Preference("voice volume")
if config.sample_voice:
textbutton _("测试") action Play("voice", config.sample_voice)
if config.has_music or config.has_sound or config.has_voice:
null height gui.pref_spacing
textbutton _("全部静音"):
action Preference("all mute", "toggle")
style "mute_all_button"
textbutton _("恢复初始音量"):
action [Preference("music volume", config.default_music_volume),
Preference("sound volume", config.default_sfx_volume),
Preference("voice volume", config.default_voice_volume) ]
selected judge_default_volume()##在该函数为False时,禁止按键处于选中状态
init 1 python:
def judge_default_volume():
if preferences.get_volume("music") == config.default_music_volume and preferences.get_volume("sfx") == config.default_sfx_volume and preferences.get_volume("voice") == config.default_voice_volume :
judge_default_volume = True ##如果现在的三个通道的音量都和默认音量保持一致,则返回True
else:
judge_default_volume = False ##否则返回False
return judge_default_volume
PS:自问自答是允许的吗?
|