查看: 2526|回复: 6

[已经解决] 关于随机标题BGM的一个问题

[复制链接]
梦石
0
星屑
55
在线时间
100 小时
注册时间
2010-7-30
回帖
148
发表于 2012-8-24 14:23:24 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

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

×
改了一下Scene_Title脚本的195行:“$data_system.title_bgm.play”这里
然后改成
@rand_music = rand(3) + 1
    case @rand_music
    when 1
    Audio.bgm_play("Audio/BGM/1.mp3")
    when 2
    Audio.bgm_play("Audio/BGM/2.mp3")
    when 3
    Audio.bgm_play("Audio/BGM/3.mp3")
    end

原本没什么问题,可是进入读取存档界面后,再返回,发现BGM又随机更换了一首
怎样才能在进入存档界面再返回标题的时候,不随机切换标题BGM,并且除此之外的情况都照常随机切换标题BGM呢?
梦石
0
星屑
54
在线时间
409 小时
注册时间
2012-5-14
回帖
580
发表于 2012-8-24 15:32:04 | 显示全部楼层
本帖最后由 折戬沉沙 于 2012-8-24 15:40 编辑

让我想想……

其实全部随机也挺好,LZ多弄几个……(十个八个吧~)

或者直接重写读档脚本,让它与标题画面合二为一(就是说不切换画面……)

{:2_272:} 脑袋好乱……就是说将【档位】变成【继续】的子选项……
回复

使用道具 举报

梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
回帖
571

开拓者

发表于 2012-8-24 15:51:41 | 显示全部楼层
……隐约看到以前自己的帖子了,这个195行应该是对应VX的才对。。
抬头发现这里是XP区来着。。。啥情况。。。

@rand_music = rand(3) + 1
这里改成
@rand_music = rand(3) + 1 if @rand_music == nil
试试
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
0
星屑
1002
在线时间
1270 小时
注册时间
2011-2-14
回帖
5388
发表于 2012-8-24 16:35:57 | 显示全部楼层
@rand_music = rand(3) + 1
    case @rand_music
    when 1
    Audio.bgm_play("Audio/BGM/1.mp3")
    when 2
    Audio.bgm_play("Audio/BGM/2.mp3")
    when 3
    Audio.bgm_play("Audio/BGM/3.mp3")
    end
这段这么用
@rand_music = rand(3) + 1 改为 $rand_music = rand(3) + 1并插入到main脚本页的里面的第一行
然后原位置的
    case @rand_music
    when 1
    Audio.bgm_play("Audio/BGM/1.mp3")
    when 2
    Audio.bgm_play("Audio/BGM/2.mp3")
    when 3
    Audio.bgm_play("Audio/BGM/3.mp3")
    end
改成
    case $rand_music
    when 1
    Audio.bgm_play("Audio/BGM/1.mp3")
    when 2
    Audio.bgm_play("Audio/BGM/2.mp3")
    when 3
    Audio.bgm_play("Audio/BGM/3.mp3")
    end

@qq295268654
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-8-24 17:32:52 | 显示全部楼层
R-零 发表于 2012-8-24 16:35
@rand_music = rand(3) + 1
    case @rand_music
    when 1


占用全局变量了。而且因为Game_Over或返回标题画面(不退出游戏或按F12的情况下)之后,
不管怎么样都是那首音乐。

所以,要在Main前面添加脚本。(原来Scene_Title里的那段脚本不要了)
  1. class Scene_Title
  2.   def initialize(bgm = false)
  3.      if bgm == false
  4.       rand_music = rand(3) + 1
  5.     case rand_music
  6.     when 1
  7.       Audio.bgm_play("Audio/BGM/1.mp3")
  8.     when 2
  9.       Audio.bgm_play("Audio/BGM/2.mp3")
  10.     when 3
  11.       Audio.bgm_play("Audio/BGM/3.mp3")
  12.     end
  13. end
  14.   end
  15. end
复制代码
然后Scene_Load的第61行:$scene = Scene_Title.new
改为$scene = Scene_Title.new(true)

点评

=v=||、高端了、LZ能看懂的话就好了。。  发表于 2012-8-24 17:42
回复

使用道具 举报

炎发灼眼的讨伐

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
回帖
894
发表于 2012-8-24 18:02:27 | 显示全部楼层
在 class Scene_Title下面添加

[pre lang="ruby" line="1"] @@rand_music = nil
  def initialize
    @@rand_music = nil unless $scene.is_a?(Scene_Load)
  end[/pre]

改了一下Scene_Title脚本的195行:“$data_system.title_bgm.play”这里
然后改成
[pre lang="ruby" line="1"]    @@rand_music ||= rand(3) + 1
    case @@rand_music
    when 1
    Audio.bgm_play("Audio/BGM/1.mp3")
    when 2
    Audio.bgm_play("Audio/BGM/2.mp3")
    when 3
    Audio.bgm_play("Audio/BGM/3.mp3")
    end[/pre]

点评

谢谢(ˇˍˇ)  发表于 2012-8-24 18:32
RMXP&RMVX通用Web化完成- -|||
回复

使用道具 举报

梦石
0
星屑
55
在线时间
100 小时
注册时间
2010-7-30
回帖
148
 楼主| 发表于 2012-8-24 18:32:02 | 显示全部楼层
@R-零@hys111111
各位的答案都不错,只是对比夏娜的答案都麻烦了,最佳就给夏娜了,谢谢{:2_273:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部