查看: 3973|回复: 7

[已经解决] 怎么在游戏中更换标题bgm?

[复制链接]
梦石
0
星屑
293
在线时间
398 小时
注册时间
2011-5-20
回帖
94
发表于 2013-10-25 20:42:52 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 893299399 于 2013-10-28 14:47 编辑

怎么做一个在游戏中更换标题bgm的效果

火烧大神

梦石
0
星屑
1916
在线时间
954 小时
注册时间
2012-1-1
回帖
1767
发表于 2013-10-26 00:07:48 | 显示全部楼层
用跳过标题脚本+事件标题就行了

点评

完全不必要.....  发表于 2013-10-26 01:39

火兔游戏官网上线啦!!
戳 >>> www.huotuyouxi.com <<<戳
回复

使用道具 举报

梦石
0
星屑
407
在线时间
1291 小时
注册时间
2013-1-12
回帖
3349

贵宾

发表于 2013-10-26 01:51:10 | 显示全部楼层
本帖最后由 76213585 于 2013-10-25 20:31 编辑

[pre lang="ruby" line="1"]#========================
# 不同標題音樂  By: Panda King
#========================
#             插入main以上
#========================
module Panda_Title_Music
  Music = ["Scene1","Scene2","Scene3"] #音樂的檔案名稱  如不需要就留空  
  Music_Var = 1 #控制音樂的變量  標題BGM會改為music中的第N曲.
end
class Scene_Title < Scene_Base
  include Panda_Title_Music
  def play_title_music
    if !Music.nil?
      if $game_variables[Music_Var] >= 1
        RPG::BGM.new(Music[$game_variables[Music_Var]-1], 100, 100).play
      else
        $data_system.title_bgm.play
      end
    else
      $data_system.title_bgm.play
    end
    RPG::BGS.stop
    RPG::ME.stop
  end
end[/pre]
恩.... 用法都在裡面了...
可是如果變量值超過數組的內容就會報錯.......
我再回去研究下
==========================================
@893299399  
第十行?  可能是你的Scene_Title 的父類不是 Scene_Base?
報錯訊息是不是 Super Class mismatch之類的?  

点评

不过其实报错也没有问题,有时反而能起到提醒的作用  发表于 2013-10-26 17:02
[pre lang="ruby" line="14"]unless $game_variables[Music_Var] < 1 || $game_variables[Music_Var] > Music.size[/pre]  发表于 2013-10-26 17:01
第十行报错....  发表于 2013-10-26 11:29
LBQ
温馨提示:请不要用RPG::BGM.new ._.  发表于 2013-10-26 06:54

回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-10-26 21:30:38 | 显示全部楼层
只有我一个人觉得改变标题画面BGM这件事需要动用到全局变量么…………
  1. =begin
  2. ===============================================================================
  3.   更改标题音乐 By喵呜喵5
  4. ===============================================================================

  5.   【说明】
  6.   
  7.   在游戏中使用一个变量控制标题画面的背景音乐
  8.   如果游戏中有多个存档,且每个存档对应的变量值不同的话,
  9.   将使用最后保存的那个存档的变量值作为判定依据


  10. =end
  11. module M5TitleBgm
  12. #==============================================================================
  13. #  设定部分
  14. #==============================================================================
  15.   

  16.   LIST = [nil,
  17.   "Theme1",
  18.   "Theme2",
  19.   "Theme3"
  20.   ]  
  21.   #这里设置BGM列表,注意格式以及逗号
  22.   #如果你不懂脚本,请不要删除第一行以及最后一行的后括号
  23.   
  24.   VAR = 1
  25.   #这里设置控制播放BGM的变量的ID
  26.   
  27.   
  28. #==============================================================================
  29. #  设定结束
  30. #==============================================================================
  31. #==============================================================================
  32. #  脚本部分
  33. #==============================================================================
  34. end
  35. class << DataManager
  36.   def load_title_date(index)
  37.     File.open(make_filename(index), "rb") do |file|
  38.       Marshal.load(file)
  39.       extract_save_contents(Marshal.load(file))      
  40.     end
  41.     return true
  42.   end
  43.   def extract_title_save_contents(contents)
  44.     $game_variables     = contents[:variables]
  45.   end
  46. end
  47. class Scene_Title < Scene_Base
  48.   alias m5_20131026_play_title_music play_title_music
  49.   def play_title_music
  50.     if !Dir.glob(DataManager.make_filename(DataManager.latest_savefile_index)).empty?
  51.       DataManager.load_title_date(DataManager.latest_savefile_index)
  52.       change_title_music      
  53.     end
  54.     m5_20131026_play_title_music   
  55.   end
  56.   def change_title_music
  57.     index = $game_variables[M5TitleBgm::VAR]   
  58.     $data_system.title_bgm.name = M5TitleBgm::LIST[index] if M5TitleBgm::LIST[index]
  59.   end
  60. end
复制代码

点评

51行发生TypeError.superclass mismatch for class scene_Title......  发表于 2013-10-26 21:55
不过就算实用性++我还是觉得楼主的要求本来就很蛋疼……不若随机更换BGM  发表于 2013-10-26 21:54
全局变量好像是达到这个目的……"使用最后保存的那个存档的变量值作为判定依据"实用性++,@76213585 的只是在游戏中返回标题时播放……  发表于 2013-10-26 21:53

评分

参与人数 1梦石 +1 收起 理由
Sion + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-10-26 22:55:29 | 显示全部楼层
你应该还添加了其他的标题画面脚本了吧?
请把你添加的脚本放上来,不然我没办法修改啊……

点评

标题脚本:http://pan.baidu.com/s/168zDW  发表于 2013-10-27 13:00
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-10-27 14:09:30 | 显示全部楼层
脚本可以正常使用,看起来应该是和你其他的标题脚本发生冲突了
请把你所使用的全部脚本发上来
另外能别只用点评么,我三连啊喂!

点评

不过mog的脚本里class Scene_Title < Scene_Base都用的好好的为什么我这边会报错……把脚本和mog脚本挨在一起试试?  发表于 2013-10-27 14:13
回复

使用道具 举报

梦石
0
星屑
293
在线时间
398 小时
注册时间
2011-5-20
回帖
94
 楼主| 发表于 2013-10-28 12:56:56 | 显示全部楼层
喵呜喵5 发表于 2013-10-27 14:09
脚本可以正常使用,看起来应该是和你其他的标题脚本发生冲突了
请把你所使用的全部脚本发上来
另外能别只用 ...

我这边就这一个标题脚本= =
挨一起是什么意思,把你的脚本扔进那个脚本?
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-10-28 13:14:40 | 显示全部楼层
893299399 发表于 2013-10-28 12:56
我这边就这一个标题脚本= =
挨一起是什么意思,把你的脚本扔进那个脚本? ...

把这个脚本直接复制粘贴到那个脚本的后面
你只有一个标题脚本的话可能是其他脚本也改了标题画面的缘故,要不然就是你什么地方搞错了,总不可能同样的语句在别人的脚本中能用在我的脚本中就不能用了吧……

点评

复制到标题脚本后面就能用了,非常感谢  发表于 2013-10-28 13:29
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部