找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4150|回复: 1

[教程] 在主菜单随机播放多首音乐

[复制链接]
发表于 2021-8-1 20:38:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
无论是通过文档,还是站内dalao的教程
添加主菜单背景音乐的方式是:
[RenPy] 纯文本查看 复制代码
define config.main_menu_music = "音乐文件"


但是这只能添加一种音乐,如果我们要添加多种音乐并随机选择一种播放的话:
我们可以用到这样的代码:
[RenPy] 纯文本查看 复制代码
init python:
    import random
    max_musics = 2 # 最多有多少title音乐
    menu_musics = "audio/music/title" + str(random.randint(1,max_musics)) + ".ogg"

define config.main_menu_music = menu_musics


也可以构造这样的一个函数:
[RenPy] 纯文本查看 复制代码
init python:
    import random
    def menu_musics(max_musics):
        max_musics = max_musics
        menu_musics = "audio/music/title" + str(random.randint(1,max_musics)) + ".ogg"
        return menu_musics

define config.main_menu_music = menu_musics(2) # 最多有多少title音乐就填数字几


注意点:
1.音乐文件的名称必须以title1.ogg,title2.ogg,title3.ogg的方式命名
2.如果音乐文件格式是mp3,只需将上述代码中的.ogg改成.mp3即可
3.如果不想以title命名,只需将
[RenPy] 纯文本查看 复制代码
menu_musics = "audio/music/title"
中的title改成你自己的命名即可

讲解:
在初始化的时候,加入python代码,导入了python自带的随机数random包
通过字符串拼接的方式构建音乐文件的路径

评分

参与人数 1干货 +2 收起 理由
BuErShen + 2 感谢分享!

查看全部评分

发表于 2021-8-6 08:26:26 | 显示全部楼层
感谢分享。

补充两句,纯粹使用随机函数确定播放文件的方式,在实际用户体验上并不好。(具体案例有:苹果的随机播放算法被喷,最后被迫改成伪随机)
相对更好一些的方案是:把所有待播放文件放入一个列表中,使用random模块的shuffle函数打乱顺序;每次播放完列表最后一个曲子后再次shuffle。
回复 支持 1 抱歉 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-5-14 04:50 , Processed in 0.073358 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表