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

Project1

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

[有事请教] 有没有能够将置换地图元件/图块的脚本或者方法?

[复制链接]

Lv2.观梦者

梦石
0
星屑
624
在线时间
189 小时
注册时间
2011-4-15
帖子
66

开拓者

跳转到指定楼层
1
发表于 2020-6-10 22:48:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x


我想要把第二个图块替换成第一个图块,然后第三个图块也一起替换成第一个图块,实现开图的方法
因为比较大量,所以没办法用事件来实行
这个单独的地图图块/元件替换在RPOMAKER2003之前都有,但是在MV里面似乎只能通过脚本实现
但如何将图块2替换成图块1呢?

Lv2.观梦者

梦石
0
星屑
624
在线时间
189 小时
注册时间
2011-4-15
帖子
66

开拓者

2
 楼主| 发表于 2020-6-10 23:01:26 | 只看该作者
不懂编程
大概的想法是
定义一下图块编号的代码
然后定义tile的编号,将2变成1,应该是这样实现的
但完全不懂,想写都没办法,只知道大概这个样子……
看过帮助文档,图块只有图块组的ID,没有单独的图块ID,也不知道咋改……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
189 小时
注册时间
2011-4-15
帖子
66

开拓者

3
 楼主| 发表于 2020-6-11 00:29:11 | 只看该作者
本帖最后由 yuxuan1177 于 2020-6-11 00:37 编辑

例如我需要将1537的图块置换为1536的图块
刚刚临时看了一点,照猫画虎的弄了一下,但是没用
var 当前地图 = SceneManager._scene._spriteset._tilemap;
$dataMap.data[1537] = 1536;
当前地图.refresh();
是不是不能是1537,而是需要先var定义?我想要用开关批量将1537或者1538、1539的瓦块替换成1536编号的瓦块
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
189 小时
注册时间
2011-4-15
帖子
66

开拓者

4
 楼主| 发表于 2020-6-11 00:57:06 | 只看该作者
dataMap.data[1,1,1] = 1536;
这样倒是可以
所以逻辑应该是获取所有1537的X、Y,然后替换么
那如何获取1537号图块的xy呢……我想想……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
189 小时
注册时间
2011-4-15
帖子
66

开拓者

5
 楼主| 发表于 2020-6-11 03:13:03 | 只看该作者
http://himeworks.com/2013/02/tile-swap/
这是ACE的,其中将A3替换成A2图块,就是我需要的功能
奈何没有MV的
MV有类似的,但只能是一个个的坐标调整,就是我上面写的一样……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7479
在线时间
1451 小时
注册时间
2018-12-16
帖子
2043
6
发表于 2020-6-11 06:56:19 | 只看该作者
本帖最后由 play337 于 2020-6-11 07:00 编辑

把圖用出來變成事件不就好了....
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
189 小时
注册时间
2011-4-15
帖子
66

开拓者

7
 楼主| 发表于 2020-6-11 11:35:12 | 只看该作者
play337 发表于 2020-6-11 06:56
把圖用出來變成事件不就好了....

太多了,不好做,ACE有这个脚本,但是MV没有,RGSS3看不懂,JS也看不懂,更别提移植了……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1420
在线时间
159 小时
注册时间
2020-4-26
帖子
152
8
发表于 2020-6-11 12:13:49 | 只看该作者
整個圖塊組都換?例如野外1換成野外2,1、2是複製的圖塊組,只是圖塊1、2、3不一樣
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
189 小时
注册时间
2011-4-15
帖子
66

开拓者

9
 楼主| 发表于 2020-6-11 12:26:57 | 只看该作者
moonyoulove 发表于 2020-6-11 12:13
整個圖塊組都換?例如野外1換成野外2,1、2是複製的圖塊組,只是圖塊1、2、3不一樣 ...

试过,排列组合的逻辑太多了
替换的图块可能是有十几个,而且需要调整组合,结果就是很难搞
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
189 小时
注册时间
2011-4-15
帖子
66

开拓者

10
 楼主| 发表于 2020-6-11 12:32:49 | 只看该作者
var 地图 = SceneManager._scene._spriteset._tilemap;
var 地图宽度 = $gameMap.width();
var 地图高度 = $gameMap.height();
var 图块编号 = 1536;
var 图层 = 3;
var X = ???;
var Y = ???;
var 图块位置 = (图层 * 地图高度 + Y)*地图宽度+X;
$dataMap.data[图块位置] = 图块编号;
地图.refresh();


学了一点,大概是这种感觉?
不太清楚

大概是X和Y是坐标?
假设需要替换所有的1537的图块成为1536,那就是XY分别get所有的1537的坐标,然后置换?
可具体咋做?
如果能够执行替换,将DATA里面的MAP.JSON里面的1537全部替换成1536也成啊……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 03:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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