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

Project1

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

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
112
在线时间
376 小时
注册时间
2015-1-26
帖子
203
跳转到指定楼层
1
发表于 2016-7-24 02:00:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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把地表整个替换掉,问题仍然是无法进行复杂的变动。


各位大触帮忙看看能不能有个方法解决这问题

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
2
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22007
在线时间
8572 小时
注册时间
2011-12-31
帖子
3362
3
发表于 2016-7-24 12:04:25 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
112
在线时间
376 小时
注册时间
2015-1-26
帖子
203
4
 楼主| 发表于 2016-7-24 17:00:01 | 只看该作者
本帖最后由 raketenfaust02 于 2016-7-24 19:50 编辑


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

另外和YEP Core Engine冲突,运行的时候报错“undefined is not function”。
JAVASCRIPT 代码复制
  1. TypeError: undefined is not a function
  2.     at Game_Interpreter.Window_Base.convertEscapeCharacters (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/plugins/YEP_MessageCore.js:600:15)
  3.     at Game_Interpreter.<anonymous> (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/plugins/SupponChangeTileId.js:289:68)
  4.     at Array.map (native)
  5.     at Game_Interpreter.pluginCommand (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/plugins/SupponChangeTileId.js:288:23)
  6.     at Game_Interpreter.command356 (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:10447:10)
  7.     at Game_Interpreter.executeCommand (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:8897:34)
  8.     at Game_Interpreter.update (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:8805:19)
  9.     at Game_Map.updateInterpreter (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:6082:27)
  10.     at Game_Map.update (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/rpg_objects.js:5989:14)
  11.     at Game_Map.update (file:///C:/Users/Raketenfaust/Documents/Games/Project1/js/plugins/SupponChangeTileId.js:366:31)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-11 05:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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