Project1

标题: 如何临时取消角色移动到鼠标点击处 [打印本页]

作者: Fan723    时间: 2018-9-16 17:18
标题: 如何临时取消角色移动到鼠标点击处
打算写个插件,地图上判断某个方块区域作为按钮,点击可以运行脚本,
但是当点击该按钮的时候不想角色移动过去,所以需要临时取消移动,
找了一天了,找不到临时取消移动的,永久禁止鼠标点击移动的却一大堆,
想用其它方法来代替却都有瑕疵:
用临时清除目的地 $gameTemp.clearDestination();
出现运行过后角色向按钮移动一格现象;
用强制设定目的地 $gameTemp.setDestination(this.actor.x, this.actor.y);
                            $gameTemp.setDestination(this.actor.x / 48, this.actor.y / 48);
都不对,运行过后角色一直向下走到地图边缘。
不知道各位大佬有没有比较好的解决方案,告知一二,不胜感激!

作者: q1456503215    时间: 2018-9-16 17:47
好像自带按钮类
作者: Drill_up    时间: 2018-9-16 17:56
本帖最后由 Drill_up 于 2018-9-16 18:07 编辑

(*ˉ﹃ˉ)  直接把Game_Temp.prototype.setDestination函数重载(插件形式)。
这种方法,相当于,你点击鼠标前,就加了个你自己套用的条件,如果不满足你自己设置的条件,就按原来的方法走,满足,就按你自己的方法走。

var _Game_Temp_setDestination= Game_Temp.prototype.setDestination
Game_Temp.prototype.setDestination = function(x, y) {
        if( /*条件*/ ){
                //条件执行
        }else{
                _Game_Temp_setDestination.call(x, y);        //调用原函数setDestination
        }
};
作者: yang1zhi    时间: 2018-9-16 21:46
Scene_Map.prototype.isMapTouchOk = function() {
这里设置屏幕点击后是否移动
你在条件里加个判断就好了。
你判断当你的鼠标点击坐标在你那个区域内的时候,就不移动就好了
作者: Fan723    时间: 2018-9-16 22:54
感谢几位出手相助,其实用强制设定目标是最方便的,
$gameTemp.setDestination(this.actor.x, this.actor.y);
但是那个 y 值不知道怎么回事,总是不对,x方向是原地不动的,
就 y 方向一直向下跑,不知道有没人知道原因。
作者: 蝉17    时间: 2021-6-5 11:18
Fan723 发表于 2018-9-16 22:54
感谢几位出手相助,其实用强制设定目标是最方便的,
$gameTemp.setDestination(this.actor.x, this.actor.y ...

感谢大佬三年前进行的探索,这个结论对我很有用
作者: 蝉17    时间: 2021-6-6 20:08
Fan723 发表于 2018-9-16 22:54
感谢几位出手相助,其实用强制设定目标是最方便的,
$gameTemp.setDestination(this.actor.x, this.actor.y ...

有BUG啊……
那请问大佬有没有发现过新的办法来临时禁用鼠标点击呢





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1