站内搜索

搜索
热搜: 活动 交友 discuz

iFAction 世界需要你的想象力!

[请帮忙] 想请教地图跳转能否用精准坐标,或可代替跳转的脚本

14

主题

161

帖子

826

积分

iF村庄

Rank: 5Rank: 5

积分
826
发表于 2020-4-10 18:33:09 | 显示全部楼层 |阅读模式
因为试了很多方法都不行,所以还是要请大神指点,现有法得到主角与触发器的精准坐标了,但地图跳转输入的是格坐标,上下左右一但做无限循环走动时(比如从下端转到最上端时)会出现跳动,因为消失与出现时的X坐标不一至,有背景就更明显了。不知有没有什么方法可解决?

14

主题

150

帖子

1906

积分

iF城镇

Rank: 6Rank: 6

积分
1906
发表于 2020-4-10 18:53:37 | 显示全部楼层
哈哈哈 我感觉这个论坛能回你的也就那2个人  坐等出现hhhh

点评

。。。这么说我都不好意思提问了。。。哈。。。实在摸索不出来才硬着头皮问的呢。自己研究一个月还不如大神门的三言两语呢。最近泡贴学习呢。  发表于 2020-4-11 17:27
莫问,问就是在偷懒

31

主题

304

帖子

1557

积分

管理员

iFAction缔造者

Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22

积分
1557

iFAction学院校长

发表于 2020-4-11 14:37:44 | 显示全部楼层
RV.NowMap.moveMap(mapId , x / 48, y / 48, dir , null);

参数说明
mapId 要跳转的地图ID
x /48 目标x坐标
y / 48 目标y坐标
为啥要除以48呢?因为在移动的函数,会按格子尺寸乘以48
如果是ARPG记 是 32
dir 朝向,ACT 0是右 1是左 ARPG 0 下 1左 2右 3上
null 这里就填null就好了

注意:
此函数 Web端将造成各种莫名的BUG,谨慎使用

14

主题

161

帖子

826

积分

iF村庄

Rank: 5Rank: 5

积分
826
 楼主| 发表于 2020-4-11 17:22:34 | 显示全部楼层
七夕小雨 发表于 2020-4-11 14:37
RV.NowMap.moveMap(mapId , x / 48, y / 48, dir , null);

参数说明

谢谢大神的指点,我试了好久了ARPG模式(ACT还没试),有下面一些问题,麻烦看下好不好解决。

情况如下:

用大神说的方法,用新ARPG工程一跳转就出错了。不知是不是我用错了。我这样用的:
触发器反复执行与并列,点确认才执行,
执行脚本RV.NowMap.moveMap(10 , 32 / 32, 32 / 32, 1 , null);然后会跳到1X1格那地方就卡死出错了。

10是地图ID,然后出现以下提示

JS-ERROR:IypeError: end is not a function
at LMap.moveMap<Script Document [2]:12330:13>->
at <anonymous>:2:11
at init <Script Document [2]:6100:9>
at makerEvent <Script Document [2]:4557:54>
at poaAdd <Script Document [2]:4544:12>
at IMain.update <Script Document [2]:4520:20>
at doInterpreterOther <Script Document [2]:23216:36>
at SMain.update <Script Document [2]:23141:9>
at mainUpdate <Script Document :1523:20>

(终于输入完了,论坛回复放图片没得上传只能输图片地址,不会弄,只能硬打上去了,哈。。)


试好久,改各组数字,都差不多
然后我看到出错提示都有说到 LMap脚本,所以我就进去看了,偶然看到562与563行,
actor.getCharacter().x = x * RV.NowProject.blockSize;
actor.getCharacter().y = y * RV.NowProject.blockSize;

我就想到这不就是大神说的会自动X本工程格子大小的地方吗?去掉X格子大小的代码不知可否,所以
我就试了下改为
actor.getCharacter().x = x
actor.getCharacter().y = y

其它地方都不敢改,然后测试就可以达到我想要的效果了,只是地图跳转都要用到变量来定XY了。

然后就是我的问题了,问题有点多,因为都是相关的,请大神不要见怪。。。

第一个问题:大神说的RV.NowMap.moveMap(mapId , x / 48, y / 48, dir , null);这脚本,是不是我没用对?是的话求详细一点的用法。

第二个问题:这代码能对接变量吗?比如说X用的是2号变量,Y用的是3号,方向用的是4号,求脚本

第三个问题:设置触发器位置的精准XY也可以用这方法吗?求脚本

第四个问题是我乱改的LMap这个地方,是不是只会影响主角跳转地图,会不会对其它方面有影响?



31

主题

304

帖子

1557

积分

管理员

iFAction缔造者

Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22

积分
1557

iFAction学院校长

发表于 2020-4-12 18:06:13 | 显示全部楼层
我还是对号入座吧= =

问题1,经过我的测试, 最后一个参数还是必须要填,所以,如果要移动到2号地图 x 100 y 100的位置应该如下:

RV.NowMap.moveMap(2 , 100/ 32 ,100 / 32 , 0 , function(){});

问题2,是可以的

就拿上面的例子来改吧——

RV.NowMap.moveMap(2 , RV.GameData.value[2] / 32 ,RV.GameData.value[3]/ 32 , 0 , function(){});
上面的例子就是将 x,y替换成了 2,3号变量

3,也是可以的,如果需要“本触发器”,"触发器id"部分填写main.NowEventId即可
var et = RV.NowMap.findEvent(触发器id);
if(et != null){
  et.getCharacter().getCharacter().x = 100;
  et.getCharacter().getCharacter().y = 100;
}

如果想要使用变量,就将100,替换
et.getCharacter().getCharacter().x = RV.GameData.value[x];
x为你需要的变量编号
问题4:

这个要具体看你改过什么,我才能知道是否有影响了

14

主题

161

帖子

826

积分

iF村庄

Rank: 5Rank: 5

积分
826
 楼主| 发表于 2020-4-12 21:28:43 | 显示全部楼层
七夕小雨 发表于 2020-4-12 18:06
我还是对号入座吧= =

问题1,经过我的测试, 最后一个参数还是必须要填,所以,如果要移动到2号地图 x 100 ...

谢谢小雨大神!!!这下完美解决了我的问题了。非常感谢。

回之前说的第4个问题,我乱改了下脚本LMap的两行,原代码如下

562   actor.getCharacter().x = x * RV.NowProject.blockSize;
563   actor.getCharacter().y = y * RV.NowProject.blockSize;

这把这两行最后的* RV.NowProject.blockSize;删除了,改成如下

562   actor.getCharacter().x
563   actor.getCharacter().y

改了之后也能达到效果,主角跳转地图里用变量控制没问题,除了地图上直接指定会偏移外,不知还会有哪些地放会出问题。当然,现在用大神给的方法才是正解。

31

主题

304

帖子

1557

积分

管理员

iFAction缔造者

Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22

积分
1557

iFAction学院校长

发表于 2020-4-13 16:25:53 | 显示全部楼层
其实你找的很对,我的第一反应也是直接修改 对应moveMap函数

主要是考虑到触发器指令的兼容问题,所以我就从外部下手处理了,这样既可以达成功能,又可以兼容原本的设置,岂不妙哉

14

主题

161

帖子

826

积分

iF村庄

Rank: 5Rank: 5

积分
826
 楼主| 发表于 2020-4-13 19:12:17 | 显示全部楼层
七夕小雨 发表于 2020-4-13 16:25
其实你找的很对,我的第一反应也是直接修改 对应moveMap函数

主要是考虑到触发器指令的兼容问题,所以我就 ...

大神说的是,听从您的教导,已经完美解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们
QQ群:977585123
iFAction下载
Windows客户端
反馈
意见建议
iFAction

iFAction

京ICP备15053274号-1

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.