赞 | 46 |
VIP | 0 |
好人卡 | 0 |
积分 | 315 |
经验 | 0 |
最后登录 | 2024-10-24 |
在线时间 | 249 小时 |
Lv5.捕梦者
- 梦石
- 24
- 星屑
- 7497
- 在线时间
- 249 小时
- 注册时间
- 2020-12-4
- 帖子
- 306
|
我猜————我猜测哦!
可能XP里自带的传送机制是这样的——
传送到一个地图的时候,先是改变map_id,然后map初始化,此时初始化得到的角色的坐标是(0,0),在初始化完成之后,才会执行之前【场所移动】事件中的设置角色的XY坐标。
我猜测这个BUG可能是这样,改变地图,地图初始化之后,在移动角色的XY坐标之前,map中进行了事件的判定,于是就触发了(0,0)【与事件接触】的事件;
之所以【与主角接触】的事件在这种情况下不会触发,想必也是因为【与主角接触】的事件的触发条件是角色要【走】到该事件上才会执行。
你所谓的【有时候会触发,而有时候不会触发】我猜测可能是这样的:
1、之前执行的【场所移动】的那个事件,执行了【场所移动】之后还有其他的事件指令,所以阻止了更新地图后那个【与事件接触】的事件的触发(有事件正在执行的时候是不会立即执行新的事件的,除非是并行处理)
2、新的地图有【自动执行】的事件,且事件的id < (0,0)坐标【与事件接触】的那个事件的id;所以先执行了【自动执行】的事件,从而避免了(0,0)事件的触发
解决方法:
1、如果接下来的地图存在(0,0)【与事件接触】的事件;不要把【场所移动】的事件指令放在事件页的最后一行;可以在后面添加一行【中断事件处理】;or;等待X帧;or;也可以【设置角色移动】(空)(等待移动结束)......等等之类能够阻止新事件执行的指令!
2、根源上解决问题,不要把【与事件接触】的事件放在(0,0) |
评分
-
查看全部评分
|