Project1
标题: 这个脚本为什么不能随机更改战斗背景图 [打印本页]
作者: ROMB板 时间: 2012-6-27 20:24
标题: 这个脚本为什么不能随机更改战斗背景图
帮在下看看问题?
只能更改渐变图- #==============================================================================
- # 随机渐变,区域控制战斗背景图 by 沉影不器
- #------------------------------------------------------------------------------
- # 功能描述: ① 使用区域名称定义不同的战斗背景图
- # 如果没有找到背景图,则使用RMVX默认眩晕背景
- # ② 进入战斗时,随机使用渐变效果
- # 使用方法: ① 复制脚本,插入到Main之前
- # ② 在Graphics文件夹下新建Battlebacks文件夹用于存放战斗背景图
- # 您也可以在脚本第16行自行设定路径
- # ③ 准备与区域名称相同的战斗背景图到您设定的战斗背景图文件夹内
- # ④ 在Graphics文件夹下新建Transitions文件夹用于存放渐变图
- # 您也可以在脚本第17行自行设定路径
- # ⑤ 在脚本第18行设定战斗背景图的后缀名
- # ⑥ 在脚本第19行设定是否直接用地图做战斗图
- #------------------------------------------------------------------------------
- B_PATH = "" # 设定战斗背景图存储路径
- T_PATH = "" # 设定渐变图存储路径
- EXTNAME = ".jpg" # 设定战斗背景图后缀名
- DIRECT_MAP = false # 设定是否直接用地图做战斗图
- #==============================================================================
- module Cache
- #--------------------------------------------------------------------------
- # ● 获取战斗背景图
- # filename : 文件名
- # hue : 色相变化值
- #--------------------------------------------------------------------------
- def self.battleback(filename, hue)
- load_bitmap(B_PATH, filename, hue)
- end
- end
- #==============================================================================
- # ■ Spriteset_Battle
- #------------------------------------------------------------------------------
- # 处理战斗画面的活动块的类。本类在 Scene_Battle 类
- # 的内部使用。
- #==============================================================================
- class Spriteset_Battle
- #--------------------------------------------------------------------------
- # ● 生成战斗背景活动块
- #--------------------------------------------------------------------------
- def create_battleback
- for area in $data_areas.values
- break if $game_player.in_area?(area)
- end
- @battleback_sprite = Sprite.new(@viewport1)
- if area != nil and FileTest.exist?(B_PATH+area.name+EXTNAME) and !DIRECT_MAP
- @battleback_sprite.bitmap = Cache.battleback(area.name, 0)
- else
- source = $game_temp.background_bitmap
- bitmap = Bitmap.new(640, 480)
- bitmap.stretch_blt(bitmap.rect, source, source.rect)
- bitmap.radial_blur(90, 12) unless DIRECT_MAP
- @battleback_sprite.bitmap = bitmap
- @battleback_sprite.ox = 320
- @battleback_sprite.oy = 240
- @battleback_sprite.x = 272
- @battleback_sprite.y = 176
- @battleback_sprite.wave_amp = 8 unless DIRECT_MAP
- @battleback_sprite.wave_length = 240 unless DIRECT_MAP
- @battleback_sprite.wave_speed = 120 unless DIRECT_MAP
- end
- end
- end
- #==============================================================================
- # ■ Scene_Title
- #------------------------------------------------------------------------------
- # 处理标题画面的类。
- #==============================================================================
- class Scene_Title < Scene_Base
- #--------------------------------------------------------------------------
- # ● 载入战斗测试用的数据库
- #--------------------------------------------------------------------------
- alias bg_load load_bt_database
- def load_bt_database
- bg_load
- $data_areas = load_data("Data/Areas.rvdata")
- end
- end
- #==============================================================================
- # ■ Scene_Map
- #------------------------------------------------------------------------------
- # 处理地图画面的类。
- #==============================================================================
- class Scene_Map < Scene_Base
- #--------------------------------------------------------------------------
- # ● 执行战斗前变换
- #--------------------------------------------------------------------------
- def perform_battle_transition
- file = Dir.entries(T_PATH)
- file.delete(".");file.delete("..")
- file_index = rand(file.size)
- Graphics.transition(80, T_PATH + file[file_index], 80)
- Graphics.freeze
- end
- end
复制代码