查看: 3752|回复: 5

[交流讨论] 讨论一下在游戏中大面积更改地图图块的方法

[复制链接]
梦石
0
星屑
112
在线时间
376 小时
注册时间
2015-1-26
回帖
194
发表于 2016-7-24 02:00:59 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 raketenfaust02 于 2016-7-24 02:11 编辑

小范围的地形改变当然可以直接用事件来实现,但如果需要改变较大面积区域的图块时,用事件的效率就太低了。
例如我要做一个事件,在空旷地图上添加一条36x3横贯地图的道路,贴108个事件上去显然不太现实,所以需要更简单有效的方式来实现这一效果。

目前思路如下:

思路1:通过addChild函数绘制,但我不知道代码具体应该怎样写
思路2:通过setData函数在保留事件不变的情况下读取另一张地图json文件中的data数组,但我也写不出这段代码
思路3:使用show picture事件,把路面作为图片贴上去。问题在于事件贴的图片默认在最上层,所以需要通过代码改变图片层次,问题是我不知道怎么实现。
思路4:利用change tileset事件变更整个地图的图块组,缺点是会比较无谓地增加资源量。而且在变更比较复杂(例如沙盒建设类)时不适用。
思路5:将需要改变的元素成组制作成尺寸较大的Charactor,以用较少的事件量实现地形改变,算是技术门槛比较低的解决方法,但在沙盒建设之类复杂情况下仍会占用大量事件量。
思路6:放弃图块,用parallax BG把地表整个替换掉,问题仍然是无法进行复杂的变动。


各位大触帮忙看看能不能有个方法解决这问题
梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
回帖
1464
发表于 2016-7-24 10:49:41 | 显示全部楼层
本帖最后由 汪汪 于 2016-7-24 10:52 编辑


沉滞的剑 的
HCEventSheriff 事件动态管理

我的
【自用+求测】地图的修改(20160315_1.2)

点评

z是指层数,如果不知道tile的值,请使用下面的方法  发表于 2016-7-25 09:32
“mapid地图x,y,z处图块改变为tile”里面,tile应该怎么填?另外z指什么?  发表于 2016-7-24 20:31
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2016-7-24 12:04:25 | 显示全部楼层
回复

使用道具 举报

梦石
0
星屑
112
在线时间
376 小时
注册时间
2015-1-26
回帖
194
 楼主| 发表于 2016-7-24 17:00:01 | 显示全部楼层
本帖最后由 raketenfaust02 于 2016-7-24 19:50 编辑


地图ID应该用什么?例如默认的MAP001,ID是MAP001还是1?

另外和YEP Core Engine冲突,运行的时候报错“undefined is not function”。
[pre lang="javascript"]TypeError: undefined is not a function
    at Game_Interpreter.Window_Base.convertEscapeCharacters (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/plugins/YEP_MessageCore.js:600:15)
    at Game_Interpreter.<anonymous> (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/plugins/SupponChangeTileId.js:289:68)
    at Array.map (native)
    at Game_Interpreter.pluginCommand (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/plugins/SupponChangeTileId.js:288:23)
    at Game_Interpreter.command356 (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:10447:10)
    at Game_Interpreter.executeCommand (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:8897:34)
    at Game_Interpreter.update (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:8805:19)
    at Game_Map.updateInterpreter (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:6082:27)
    at Game_Map.update (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:5989:14)
    at Game_Map.update (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/plugins/SupponChangeTileId.js:366:31)[/pre]
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部