this.moveTowardCharacter($gamePlayer);是我在rmmz_objects.js抄来的本事件接近玩家的指令。
放在事件页、第二页的设置移动路线那里的脚本上是报错的,
但是放在事件页自主移动、自定义路线那里,是正常运行的。
this.moveTowardCharacter($gameMap.event(1));是本事件接近1号事件的指令。
放在事件页、第二页的设置移动路线那里的脚本上是报错的,
但是放在事件页自主移动、自定义路线那里,是正常运行的。
以上,没有什么问题,两个地方移动控制的脚本应该是两种调用逻辑。
-----------------------------------------------------------------------------------------------------------------------------
问题是$gamePlayer.moveTowardCharacter($gameMap.event(1));是我根据
this.moveTowardCharacter($gameMap.event(1));修改而来的,是玩家接近1号事件的脚本。
但是放在事件页自主移动、自定义路线那里。就会非常鬼畜,玩家一下子就跑到1号事件那里去了。
(或者是因为没有给它设定速度,它就默认最高速度、最高频率了吧。)
放在事件页、第二页的设置移动路线那里的脚本上,在脚本测试中会报错TypeError Cannot read property 'x' of undefined。。。但是不管它,直接运行的话又是正常的,玩家控制的主角会按照游玩时正常的速度,走到1号事件那里。
![](http://tiebapic.baidu.com/forum/w%3D580/sign=51c6460a28061d957d4637304bf50a5d/8fb528738bd4b31c7fc6ab89c1d6277f9f2ff8e7.jpg?tbpicau=2024-09-05-05_a5db96ed1e38ab6a492168d66b00ee5a)
这样,就让我很奇怪了。
在事件页中测试明明会报错的脚本,却是可以正常运行。
于是,我想起了我前几天发的帖子-------rpg maker 中用脚本来获取事件的坐标位置是不是错误的------
在那个帖子里,
在projertj1抄来的,获取本事件坐标
$gameMap.events()[this].x
$gameMap.events()[this].y
会报错,但是改成了
$gameMap.events()[this._x]
$gameMap.events()[this._y]
就不会报错了
在projertj1抄来的,获取本事件的区域ID
$gameMap.regionId(x,y)
会报错,但是改成了
$gameMap.regionId(this._x, this._y)
这个格式就不会报错了。
(上面两段改了之后,虽然不再报错,但是好像也没有获取到它应该获取到的数值,很奇怪。)
再结合我在rmmz_objects.js找到
Game_CharacterBase.prototype.regionId = function() {
return $gameMap.regionId(this._x, this._y);
};
就是说,为什么关于获取玩家的坐标和区域ID没有出错,但是获取事件的坐标和区域ID会出错呢?
是因为rpg maker的代码编写出错了吗?
比如,是不是
Game_CharacterBase.prototype.regionId = function() {
return $gameMap.regionId(this._x, this._y);
};
这类的代码,是不是可以改成
Game_CharacterBase.prototype.regionId = function() {
return $gameMap.regionId(this.x, this.y);
};
我不明白的就是这个,有没有人能解答一下呢?
放在事件页、第二页的设置移动路线那里的脚本上是报错的,
但是放在事件页自主移动、自定义路线那里,是正常运行的。
this.moveTowardCharacter($gameMap.event(1));是本事件接近1号事件的指令。
放在事件页、第二页的设置移动路线那里的脚本上是报错的,
但是放在事件页自主移动、自定义路线那里,是正常运行的。
以上,没有什么问题,两个地方移动控制的脚本应该是两种调用逻辑。
-----------------------------------------------------------------------------------------------------------------------------
问题是$gamePlayer.moveTowardCharacter($gameMap.event(1));是我根据
this.moveTowardCharacter($gameMap.event(1));修改而来的,是玩家接近1号事件的脚本。
但是放在事件页自主移动、自定义路线那里。就会非常鬼畜,玩家一下子就跑到1号事件那里去了。
(或者是因为没有给它设定速度,它就默认最高速度、最高频率了吧。)
放在事件页、第二页的设置移动路线那里的脚本上,在脚本测试中会报错TypeError Cannot read property 'x' of undefined。。。但是不管它,直接运行的话又是正常的,玩家控制的主角会按照游玩时正常的速度,走到1号事件那里。
![](http://tiebapic.baidu.com/forum/w%3D580/sign=51c6460a28061d957d4637304bf50a5d/8fb528738bd4b31c7fc6ab89c1d6277f9f2ff8e7.jpg?tbpicau=2024-09-05-05_a5db96ed1e38ab6a492168d66b00ee5a)
这样,就让我很奇怪了。
在事件页中测试明明会报错的脚本,却是可以正常运行。
于是,我想起了我前几天发的帖子-------rpg maker 中用脚本来获取事件的坐标位置是不是错误的------
在那个帖子里,
在projertj1抄来的,获取本事件坐标
$gameMap.events()[this].x
$gameMap.events()[this].y
会报错,但是改成了
$gameMap.events()[this._x]
$gameMap.events()[this._y]
就不会报错了
在projertj1抄来的,获取本事件的区域ID
$gameMap.regionId(x,y)
会报错,但是改成了
$gameMap.regionId(this._x, this._y)
这个格式就不会报错了。
(上面两段改了之后,虽然不再报错,但是好像也没有获取到它应该获取到的数值,很奇怪。)
再结合我在rmmz_objects.js找到
Game_CharacterBase.prototype.regionId = function() {
return $gameMap.regionId(this._x, this._y);
};
就是说,为什么关于获取玩家的坐标和区域ID没有出错,但是获取事件的坐标和区域ID会出错呢?
是因为rpg maker的代码编写出错了吗?
比如,是不是
Game_CharacterBase.prototype.regionId = function() {
return $gameMap.regionId(this._x, this._y);
};
这类的代码,是不是可以改成
Game_CharacterBase.prototype.regionId = function() {
return $gameMap.regionId(this.x, this.y);
};
我不明白的就是这个,有没有人能解答一下呢?