查看: 82|回复: 0

[转载发布] 地图图块随机附加系统

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

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月六日(秋) | 显示全部楼层 |阅读模式


    地图美化也是游戏中的一个重要的事情,
    但是游戏中的地图经常容易出现图块单一重复,实在看不下去。
    然后就做出这个系统。

    下面放出一些图片,介绍这个系统到底有什么用呢?
    截图


    截图



    其实这个系统就是替换图块的系统,而且虽然叫做随机,实际上还是比较固定地替换图块的。
    另外,这个系统还可以做出普通图块像自动元件一样能够动的效果。

    部分素材




    这个修改图块的方法,也在脚本编辑器里了。

    RUBY 代码
    1. =begin
    2. 图块编号说明:
    3. 自动元件
    4. 48~95、96~143、144~191、192~239、240~287、288~335、336~383
    5. 从第二行的第一个图块开始
    6. 384、385、386、387、388、389、390、391、
    7. 392、393、394、395、396、397、398、399、
    8. ……
    9. 以此类推
    10. =end
    11. module Random_Tileset
    12.   name = "001-Grassland01"
    13.   # 这个是附加的图块名称
    14.   NUMBER[name] = {}
    15.   RANDOM[name] = {}
    16.   WIDTH[name] = {}
    17.   HEIGHT[name] = {}
    18.   SPEAR[name] = {}
    19.   ANIME[name] = {}
    20.   FRAME[name] = {}
    21.   # 这个是初始化变量,不用动,新增文件名时要复制过去
    22.   tile = 385
    23.   # 修改的图块ID
    24.   NUMBER[name][tile] = 5
    25.   # 该图块的变化数量  (必填,否则没反应)
    26.   # 注意,文件宽度要小于或等于256(也就是8个图块),不够放就换行,否则超出部分截不到
    27.   RANDOM[name][tile] = nil
    28.   # 图块的分布情况,不填或填nil默认是[0,1,……,NUMBER[name][tile]]
    29.   # 0是原图块,1开始是改后图块
    30.   # 如果希望原图块分布多一些,填入[0,0,0,0,0,1,2……]使0分布多一些
    31.   WIDTH[name][tile] = 1
    32.   # 图块格数,比如树(424号图块)就填4  (默认为1,不能超过8)
    33.   HEIGHT[name][tile] = 1
    34.   # 图块格数,比如树(424号图块)就填5  (默认为1)
    35.   SPEAR[name][tile] = false
    36.   # 连续图块是否分散分布  (宽度、高度为1*1时无效,默认为false)
    37.   ANIME[name][tile] = nil
    38.   # 像自动原件一样的动画  (通常为数组,默认为nil)
    39.   FRAME[name][tile] = "Graphics.frame_count % 4 == 0"
    40.   # 元件动画切换条件  (默认为上面这行字符串,ANIME为nil无效)
    41.   # 比如说,天气为风的时候,图块才动,就输入"$game_screen.weather_type == 3"
    42.   tile = 407
    43.   NUMBER[name][tile] = 4
    44.   RANDOM[name][tile] = nil
    45.   WIDTH[name][tile] = 1
    46.   HEIGHT[name][tile] = 1
    47.   SPEAR[name][tile] = false
    48.   ANIME[name][tile] = [0,1,2,3,4]# 如果不填0,原图块是没有动画的
    49.   FRAME[name][tile] = "rand(4) == 0"
    50.   tile = 424
    51.   NUMBER[name][tile] = 4
    52.   RANDOM[name][tile] = nil
    53.   WIDTH[name][tile] = 4
    54.   HEIGHT[name][tile] = 5
    55.   SPEAR[name][tile] = false
    56.   ANIME[name][tile] = nil
    57.   FRAME[name][tile] = "Graphics.frame_count % 4 == 0"
    58. end
    复制代码


    修改脚本后,比如说这个的文件名叫做“001-Grassland01”
    你就在“Graphic/Tileset”下建一个文件夹,名为“001-Grassland01_Random Add On”

    并在该目录下(自动元件也是一样),放置替换图块的素材文件,文件名为被替换的图块ID(第3到第10行)

    其实这就是一个偷懒画地图的脚本。下载那个工程看看吧。
    如果需要移植到自己的工程的话,把脚本编辑器里面的东西复制过去,然后按照自己的需求修改并添加素材就可以了。

    另外,如果你自己的工程事先放了一些能把Spriteset_Map重定义的脚本(如防卡脚本),该脚本需要插在那些脚本的下面。
    (实在不懂的话,就放在其它脚本下面,Main前面就对了)
                 本帖来自P1论坛作者hys111111,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=398521  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-12 21:08 , Processed in 0.068902 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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