rpgmaker吧 关注:13,613贴子:24,167
  • 0回复贴,共1

$gameMap.events()[id].isMoving()检测事件是否在移动的一些问题

只看楼主收藏回复

非常好的脚本调用手册 - RPG Maker MV 讨论区 - Project1
在上面这个帖子有下面这个脚本,是检测某事件是否在移动状态的。
$gameMap.events()[id].isMoving()

下面这个脚本跟上面这个脚本有相关性,好像是正常的。
$gamePlayer.isMoving()
//玩家是否在移动中

下面这个脚本好像是Ruby语言的那些版本的,我虽然有XP版,但没有去测试。
等待移动结束:
@move_route_waiting = true
正在移动判定:
$game_player.moving?
$game_map.events[编号].moving?

$gameMap.events()[id].isMoving()
//指定ID事件目前是否正在移动中
就是说,上面这个脚本使用在分支条件的时候,好像是需要把否则给勾选上,
没有勾上的话,好像是有点问题。
勾上了之后,还需要在否则那里让本事件移动,并且是本事件的ID要大于检测事件的ID。

比如,本事件是20号事件页,检测1号到19号事件,并且在否则那里让本事件移动,就是正常的。
如果检测20号以及以上的事件页,就会出现下面这样的报错。
TypeError
Cannot read property 'isMoving' of undefined

嗯,就是这样,MZ版经过测试就是这样并行执行,如果19号事件正在移动就怎么怎么,
如果19号事件停止移动就怎么怎么,
(这里的移动和停止移动,因为玩家和NPC的移动是有移动速度和移动频率的,移动和移动的中间是有停顿的,这个停顿也是没有移动)
MV版好像是差不多的,随便试了一下,没有详细的去测试。

最后,对于这些问题给出的一些猜测,
可能是因为程序在运行的时候,是从1、2、3、4、5这样的顺序来执行的,20号事件检测不到这一帧里20号以及21号事件是否在移动应该是正常的。
至于需要给否则勾上,不太清楚是什么原因。
至于在否则这里本事件移动,不知道是不是本事件移动一次才能刷新一次这个脚本。。。虽然是并行执行,但是这个检测事件移动可能是本事件移动一次才刷新一次。


IP属地:广东1楼2024-11-22 22:20回复