加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
不知道有没有前辈发过,简单来说就是通过修改RPG::Cache内相关方法实现切换图块/战斗图等素材
可用于地图四季变化、NPC服饰变化等等(美工看了落泪)
范例中为切换地图图块
首先在main脚本中指定一个初始值
#============================================================================== # ■ Main #------------------------------------------------------------------------------ # 各定义结束后、从这里开始实际处理。 #============================================================================== begin # 准备过渡 # 设置系统默认字体 Font.default_name = (["黑体"]) Graphics.freeze # 设置默认地图风格 $map_style = 0 # 生成场景对像 (标题画面) $scene = Scene_Title.new # $scene 为有效的情况下调用 main 过程 while $scene != nil $scene.main end # 淡入淡出 Graphics.transition(20) rescue Errno::ENOENT # 补充 Errno::ENOENT 以外错误 # 无法打开文件的情况下、显示信息后结束 filename = $!.message.sub("No such file or directory - ", "") print("找不到文件 #{filename}。 ") end
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
# 各定义结束后、从这里开始实际处理。
#==============================================================================
begin
# 准备过渡
# 设置系统默认字体
Font.default_name = (["黑体"])
Graphics.freeze
# 设置默认地图风格
$map_style = 0
# 生成场景对像 (标题画面)
$scene = Scene_Title.new
# $scene 为有效的情况下调用 main 过程
while $scene != nil
$scene.main
end
# 淡入淡出
Graphics.transition(20)
rescue Errno::ENOENT
# 补充 Errno::ENOENT 以外错误
# 无法打开文件的情况下、显示信息后结束
filename = $!.message.sub("No such file or directory - ", "")
print("找不到文件 #{filename}。 ")
end
1、单独切换某种素材,只要重新定义RPG::Cache里对应的方法即可,用变量控制风格类型,利用事件或脚本修改变量值来变换风格
比如范例中的切换图块
module RPG module Cache def self.tileset(filename) if (1..3).include?($map_style) folder_name = "Graphics/Tilesets/Style-" + $map_style.to_s + "/" else folder_name = "Graphics/Tilesets/" end self.load_bitmap(folder_name, filename) end end end
module RPG
module Cache
def self.tileset(filename)
if (1..3).include?($map_style)
folder_name = "Graphics/Tilesets/Style-" + $map_style.to_s + "/"
else
folder_name = "Graphics/Tilesets/"
end
self.load_bitmap(folder_name, filename)
end
end
end
2、若是美工足够给力,所有素材都做成了几种风格,那么可以直接修改load_bitmap方法
module RPG module Cache @cache = {} def self.load_bitmap(folder_name, filename, hue = 0) if (1..3).include?($map_style) folder_name += "Style-" + $map_style.to_s + "/" end path = folder_name + filename if not @cache.include?(path) or @cache[path].disposed? if filename != "" @cache[path] = Bitmap.new(path) else @cache[path] = Bitmap.new(32, 32) end end if hue == 0 @cache[path] else key = [path, hue] if not @cache.include?(key) or @cache[key].disposed? @cache[key] = @cache[path].clone @cache[key].hue_change(hue) end @cache[key] end end end end
module RPG
module Cache
@cache = {}
def self.load_bitmap(folder_name, filename, hue = 0)
if (1..3).include?($map_style)
folder_name += "Style-" + $map_style.to_s + "/"
end
path = folder_name + filename
if not @cache.include?(path) or @cache[path].disposed?
if filename != ""
@cache[path] = Bitmap.new(path)
else
@cache[path] = Bitmap.new(32, 32)
end
end
if hue == 0
@cache[path]
else
key = [path, hue]
if not @cache.include?(key) or @cache[key].disposed?
@cache[key] = @cache[path].clone
@cache[key].hue_change(hue)
end
@cache[key]
end
end
end
end
以上是通过修改目录的方式实现,同理,也可修改文件名等方式来实现
范例:百度网盘提取码: RMXP |