Project1

标题: 关于随机标题BGM的一个问题 [打印本页]

作者: qq295268654    时间: 2012-8-24 14:23
标题: 关于随机标题BGM的一个问题
改了一下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呢?
dsu_plus_rewardpost_czw
作者: 折戬沉沙    时间: 2012-8-24 15:32
本帖最后由 折戬沉沙 于 2012-8-24 15:40 编辑

让我想想……

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

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

{:2_272:} 脑袋好乱……就是说将【档位】变成【继续】的子选项……
作者: ML4455739    时间: 2012-8-24 15:51
……隐约看到以前自己的帖子了,这个195行应该是对应VX的才对。。
抬头发现这里是XP区来着。。。啥情况。。。

@rand_music = rand(3) + 1
这里改成
@rand_music = rand(3) + 1 if @rand_music == nil
试试
作者: R-零    时间: 2012-8-24 16:35
@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
作者: hys111111    时间: 2012-8-24 17:32
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)
作者: 灼眼的夏娜    时间: 2012-8-24 18:02
在 class Scene_Title下面添加

RUBY 代码复制
  1. @@rand_music = nil
  2.   def initialize
  3.     @@rand_music = nil unless $scene.is_a?(Scene_Load)
  4.   end


改了一下Scene_Title脚本的195行:“$data_system.title_bgm.play”这里
然后改成
RUBY 代码复制
  1. @@rand_music ||= rand(3) + 1
  2.     case @@rand_music
  3.     when 1
  4.     Audio.bgm_play("Audio/BGM/1.mp3")
  5.     when 2
  6.     Audio.bgm_play("Audio/BGM/2.mp3")
  7.     when 3
  8.     Audio.bgm_play("Audio/BGM/3.mp3")
  9.     end

作者: qq295268654    时间: 2012-8-24 18:32
@R-零@hys111111
各位的答案都不错,只是对比夏娜的答案都麻烦了,最佳就给夏娜了,谢谢{:2_273:}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1