查看: 99|回复: 0

[转载发布] 简单的素材风格切换

[复制链接]
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    2022

    主题

    32

    回帖

    7144

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5074
    OK点
    16
    积分
    7144
    发表于 同元一千年八月九日(秋) | 显示全部楼层 |阅读模式
    不知道有没有前辈发过,简单来说就是通过修改RPG::Cache内相关方法实现切换图块/战斗图等素材
    可用于地图四季变化、NPC服饰变化等等(美工看了落泪)
    范例中为切换地图图块


    首先在main脚本中指定一个初始值
    RUBY 代码
    1. #==============================================================================
    2. # ■ Main
    3. #------------------------------------------------------------------------------
    4. #  各定义结束后、从这里开始实际处理。
    5. #==============================================================================
    6. begin
    7.   # 准备过渡
    8.   # 设置系统默认字体
    9.   Font.default_name = (["黑体"])
    10.   Graphics.freeze
    11.   # 设置默认地图风格
    12.   $map_style = 0
    13.   # 生成场景对像 (标题画面)
    14.   $scene = Scene_Title.new
    15.   # $scene 为有效的情况下调用 main 过程
    16.   while$scene != nil
    17.     $scene.main
    18.   end
    19.   # 淡入淡出
    20.   Graphics.transition(20)
    21. rescueErrno::ENOENT
    22.   # 补充 Errno::ENOENT 以外错误
    23.   # 无法打开文件的情况下、显示信息后结束
    24.   filename = $!.message.sub("No such file or directory - ", "")
    25.   print("找不到文件 #{filename}。 ")
    26. end
    复制代码


    1、单独切换某种素材,只要重新定义RPG::Cache里对应的方法即可,用变量控制风格类型,利用事件或脚本修改变量值来变换风格
    比如范例中的切换图块
    RUBY 代码
    1. module RPG
    2.   module Cache
    3.     defself.tileset(filename)
    4.       if(1..3).include?($map_style)
    5.         folder_name = "Graphics/Tilesets/Style-" + $map_style.to_s + "/"
    6.       else
    7.         folder_name = "Graphics/Tilesets/"
    8.       end
    9.       self.load_bitmap(folder_name, filename)
    10.     end
    11.   end
    12. end
    复制代码


    2、若是美工足够给力,所有素材都做成了几种风格,那么可以直接修改load_bitmap方法
    RUBY 代码
    1. module RPG
    2.   module Cache
    3.     @cache = {}
    4.     defself.load_bitmap(folder_name, filename, hue = 0)
    5.       if(1..3).include?($map_style)
    6.         folder_name += "Style-" + $map_style.to_s + "/"
    7.       end
    8.       path = folder_name + filename
    9.       ifnot@cache.include?(path)or@cache[path].disposed?
    10.         if filename != ""
    11.           @cache[path] = Bitmap.new(path)
    12.         else
    13.           @cache[path] = Bitmap.new(32, 32)
    14.         end
    15.       end
    16.       if hue == 0
    17.         @cache[path]
    18.       else
    19.         key = [path, hue]
    20.         ifnot@cache.include?(key)or@cache[key].disposed?
    21.           @cache[key] = @cache[path].clone
    22.           @cache[key].hue_change(hue)
    23.         end
    24.         @cache[key]
    25.       end
    26.     end
    27.   end
    28. end
    复制代码


    以上是通过修改目录的方式实现,同理,也可修改文件名等方式来实现
    范例:百度网盘提取码: RMXP
                 本帖来自P1论坛作者qq634488405,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=491167  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

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

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-5 09:20 , Processed in 0.076529 second(s), 50 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表