赞 | 27 |
VIP | 400 |
好人卡 | 13 |
积分 | 17 |
经验 | 69730 |
最后登录 | 2023-6-12 |
在线时间 | 3038 小时 |
Lv3.寻梦者 (暗夜天使) 精灵族の天使
- 梦石
- 0
- 星屑
- 1697
- 在线时间
- 3038 小时
- 注册时间
- 2007-3-16
- 帖子
- 33731
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 精灵使者 于 2017-10-8 02:23 编辑
感谢 @RyanBern 的那个脚本,精灵经过大量的测试把这个给糊弄出来了,而且亲测可行。
原脚本见此链接:https://rpg.blue/thread-373864-1-1.html
精灵增添功能:
1.把Game_Temp下的东西挪到Game system下,以防止标题画面脚本异常。
2.把设定统一的写在了module类里面。
3.增加了标题画面,战斗画面,结束画面时的显示效果。
4.拉宽了窗口为了显示长的BGM名字。
5.可以自定义BGM和SE的字体颜色,还有是否显示的开关。
11.25更新:
1.修正一个方式:如果播放me的时候bgm为空的时候(这个时侯经常是放歌的时候),则一直用me的模式。否则只是用一次性模式
2.修正一个播放me出现问题的时候的失误。
3.增添新功能:BGM和ME同时为空的时候会不显示此窗口
4.增添新功能:显示行数会和分割的字符行数有关。如果当行数等于1的时候,会关闭滚动功能。
11.27更新
1.更新地图事件播放BGM,BGS的时候没法及时更新的问题。
2.发现有的时候没有代入BGM的问题,正在修正中。
11.27更新
播放完me之后没有显示BGM名称的问题,已经完美修正。
12.19更新
删去多余的行,修正F12的错误
截图:
脚本如下【请自动去掉解析字符】
- #==============================================================================
- # 本脚本来自[url=http://www.66RPG.com]www.66RPG.com[/url],使用和转载请保留此信息
- #==============================================================================
- #==============================================================================
- # ■ 播放BGM和ME的脚本 ver 20141127
- #------------------------------------------------------------------------------
- # 作者:精灵使者 &Ryanbarn
- # 用于显示正在播放的BGM和正在播放的ME(仅一次)。
- # 如果想分行显示(作者,轨道名)的时候,请用-分开。
- #==============================================================================
- #--------------------------------------------------------------------------
- # ● 设定部分
- #--------------------------------------------------------------------------
- module FAY
- BGM_DISPLAY_BGM = true #是否显示BGM窗口
- BGM_DISPLAY_ME = true #是否显示ME
- BGM_DISPLAY_WORDS = "BGM:" #BGM显示用语
- ME_DISPLAY_WORDS = "ME:" #ME显示用语
- BGM_DISPLAY_X = 32 #BGM窗口位置X坐标
- BGM_DISPLAY_Y = 64 #BGM窗口位置Y坐标
- BGM_DISPLAY_Z = 300 #BGM窗口位置Z坐标
- WORD_SPLIT = /-/ #分隔符,请修改反斜杠里里的东西
- WAIT_FRAME = 40 #等待时间
- BGM_COLOR = Color.new(192,224,255,255) #BGM的显示颜色
- BGM_NAME_COLOR = Color.new(255,255,255,255) #BGM的名字显示颜色
- BGM_DISPLAY_WIDTH = 500 #BGM的宽度
- end
- #==============================================================================
- # ■ BGM_Display
- #------------------------------------------------------------------------------
- # 处理显示BGM的类。
- #==============================================================================
- class BGM_Display
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- @bgm = nil
- @me = nil
- @waiting = 0
- @bgm_need_refresh = false
- @sprite1 = Sprite.new
- @sprite2 = Sprite.new
- @sprite1.bitmap = Bitmap.new(160, 32)
- @sprite2.bitmap = Bitmap.new(FAY::BGM_DISPLAY_WIDTH, 224)
- @sprite2.src_rect = Rect.new(0, 0, FAY::BGM_DISPLAY_WIDTH, 32)
- @sprite1.visible = FAY::BGM_DISPLAY_BGM
- @sprite2.visible = FAY::BGM_DISPLAY_BGM
- self.x = FAY::BGM_DISPLAY_X
- self.y = FAY::BGM_DISPLAY_Y
- self.z = 300
- @texts = []
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 刷新部分
- #--------------------------------------------------------------------------
- def refresh
- @sprite1.visible = FAY::BGM_DISPLAY_BGM
- @sprite2.visible = FAY::BGM_DISPLAY_BGM
- if @me != nil
- #播放ME
- if @me.name != ""
- @sprite1.bitmap.clear
- @sprite1.bitmap.font.color = FAY::BGM_COLOR
- @sprite1.bitmap.draw_text(0, 0, FAY::BGM_DISPLAY_WIDTH, 32, FAY::ME_DISPLAY_WORDS)
- @texts = []
- @texts = @me.name.split(FAY::WORD_SPLIT)
- end
- elsif @bgm != nil
- #播放BGM
- if @bgm.name != ""
- @sprite1.bitmap.clear
- @sprite1.bitmap.font.color = FAY::BGM_COLOR
- @sprite1.bitmap.draw_text(0, 0, FAY::BGM_DISPLAY_WIDTH, 32, FAY::BGM_DISPLAY_WORDS)
- @texts = []
- @texts = @bgm.name.split(FAY::WORD_SPLIT)
- end
- else
- @sprite1.bitmap.clear
- @sprite2.bitmap.clear
- return
- end
- (0 ... @texts.size).each do |i|
- draw_item(i)
- end
- end
- #--------------------------------------------------------------------------
- # ● 显示部分
- #--------------------------------------------------------------------------
- def draw_item(i)
- x = 4
- y = 32 * (2 * i + 1)
- @sprite2.bitmap.fill_rect(x, y, FAY::BGM_DISPLAY_WIDTH, 32, Color.new(0,0,0,0))
- @sprite2.bitmap.font.color = FAY::BGM_NAME_COLOR
- @sprite2.bitmap.draw_text(x, y ,FAY::BGM_DISPLAY_WIDTH, 32, @texts[i])
- end
- def x=(x)
- @sprite1.x = x
- @sprite2.x = x
- end
- def y=(y)
- @sprite1.y = y
- @sprite2.y = y + 32
- end
- def z=(z)
- @sprite1.z = z
- @sprite2.z = z
- end
- def update
- @sprite1.visible = FAY::BGM_DISPLAY_BGM
- @sprite2.visible = FAY::BGM_DISPLAY_BGM
- if $game_system.playing_me != nil
- @me = $game_system.playing_me
- $game_system.playing_me = nil
- refresh
- @sprite2.src_rect.y = @texts.size == 1 ? 32 : 0
- return
- end
- if ($game_system.playing_bgm != @bgm or @bgm_need_refresh)
- @bgm = $game_system.playing_bgm
- refresh
- @sprite2.src_rect.y = @texts.size == 1 ? 32 : 0
- @bgm_need_refresh = false
- return
- end
- if @texts.size == 1
- if (@me != nil and @bgm != nil)
- @me = nil
- @bgm_need_refresh = true
- refresh
- end
- else
- if @waiting > 0
- @waiting -= 1
- return
- end
- @sprite2.src_rect.y += 1
- if @sprite2.src_rect.y >= 64 * @texts.size
- @sprite2.src_rect.y -= 64 * @texts.size
- if (@me != nil and @bgm != nil)
- @me = nil
- @bgm_need_refresh = true
- refresh
- end
- end
- if @sprite2.src_rect.y % 64 == 32
- @waiting = FAY::WAIT_FRAME
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 释放的处理
- #--------------------------------------------------------------------------
- def dispose
- @sprite1.bitmap.dispose
- @sprite2.bitmap.dispose
- @sprite1.dispose
- @sprite2.dispose
- end
- end
-
- #==============================================================================
- # ■ Game_System
- #------------------------------------------------------------------------------
- # 系统的必要更新。
- # attr_accessor :playing_me 正在播放的ME
- #==============================================================================
- class Game_System
- attr_accessor :playing_me
- attr_accessor :playing_bgm
- alias rb_me_play_20141124 me_play unless $@
- alias rb_bgm_play_20141124 bgm_play unless $@
- #--------------------------------------------------------------------------
- # ● 演奏 BGM
- # bgm : 演奏的 BGM
- #--------------------------------------------------------------------------
- def bgm_play(bgm)
- $game_system.playing_bgm = FAY::BGM_DISPLAY_BGM ? bgm : nil
- rb_bgm_play_20141124(bgm)
- end
- def me_play(me)
- $game_system.playing_me = FAY::BGM_DISPLAY_ME ? me : nil
- rb_me_play_20141124(me)
- end
- end
-
- #==============================================================================
- # ■ Scene_Map
- #------------------------------------------------------------------------------
- # 地图的处理部分
- #==============================================================================
- class Scene_Map
- alias rb_main_20141122 main unless $@
- def main
- @bgm_display = BGM_Display.new
- rb_main_20141122
- @bgm_display.dispose
- end
- alias rb_update_20141122 update unless $@
- def update
- @bgm_display.update
- rb_update_20141122
- end
- end
-
- #==============================================================================
- # ■ Scene_Battle
- #------------------------------------------------------------------------------
- # 战斗的处理部分
- #==============================================================================
- class Scene_Battle
- alias rb_main_20141125 main unless $@
- def main
- @bgm_display = BGM_Display.new
- rb_main_20141125
- @bgm_display.dispose
- end
- alias rb_update_20141125 update unless $@
- def update
- @bgm_display.update
- rb_update_20141125
- end
- end
-
- #==============================================================================
- # ■ Scene_Battle
- #------------------------------------------------------------------------------
- # 标题画面的处理部分
- #==============================================================================
- class Scene_Title
- alias rb_main_20141126 main unless $@
- def main
- @bgm_display = BGM_Display.new
- rb_main_20141126
- @bgm_display.dispose
- end
- alias rb_update_20141126 update unless $@
- def update
- @bgm_display.update
- rb_update_20141126
- end
- end
-
- #==============================================================================
- # ■ Scene_Gameover
- #------------------------------------------------------------------------------
- # 结束画面的处理部分
- #==============================================================================
- class Scene_Gameover
- alias rb_main_20141127 main unless $@
- def main
- @bgm_display = BGM_Display.new
- rb_main_20141127
- @bgm_display.dispose
- end
- alias rb_update_20141127 update unless $@
- def update
- @bgm_display.update
- rb_update_20141127
- end
- end
- #==============================================================================
- # 本脚本来自[url=http://www.66RPG.com]www.66RPG.com[/url],使用和转载请保留此信息
- #=============================================================================
复制代码
|
评分
-
查看全部评分
|