设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2434|回复: 1
打印 上一主题 下一主题

[原创发布] 地图图块随机附加系统

[复制链接]

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

跳转到指定楼层
1
发表于 2017-1-27 13:59:54 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 hys111111 于 2017-1-27 14:05 编辑

随机附加图块.rar (308.5 KB, 下载次数: 131)

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

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

截图


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

部分素材



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

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


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

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

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

另外,如果你自己的工程事先放了一些能把Spriteset_Map重定义的脚本(如防卡脚本),该脚本需要插在那些脚本的下面。
(实在不懂的话,就放在其它脚本下面,Main前面就对了)

评分

参与人数 1星屑 +666 收起 理由
RyanBern + 666 好评

查看全部评分

Lv1.梦旅人

梦石
0
星屑
45
在线时间
152 小时
注册时间
2016-10-14
帖子
643
2
发表于 2017-1-27 14:13:05 | 只看该作者
不错 先收下了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 02:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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