设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5125|回复: 12
打印 上一主题 下一主题

[有事请教] 如何临时取消角色移动到鼠标点击处

[复制链接]

Lv4.逐梦者

梦石
0
星屑
19362
在线时间
2316 小时
注册时间
2015-7-4
帖子
938
跳转到指定楼层
1
发表于 2018-9-16 17:18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

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

Lv3.寻梦者

梦石
0
星屑
3074
在线时间
685 小时
注册时间
2018-6-1
帖子
272
2
发表于 2018-9-16 17:47:59 | 只看该作者
好像自带按钮类
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
32213
在线时间
276 小时
注册时间
2018-7-27
帖子
342
3
发表于 2018-9-16 17:56:33 | 只看该作者
本帖最后由 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
        }
};

点评

还是不行,关键是条件不会写,老是出错。  发表于 2018-9-16 22:49
非常感谢!突然感觉我这个牛角尖钻得好深哦。  发表于 2018-9-16 20:33
量子妹: 只要你愿意开始,什么时候出发都不晚。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

4
发表于 2018-9-16 21:46:29 | 只看该作者
Scene_Map.prototype.isMapTouchOk = function() {
这里设置屏幕点击后是否移动
你在条件里加个判断就好了。
你判断当你的鼠标点击坐标在你那个区域内的时候,就不移动就好了

点评

这个function()引用初始脚本老是出错,再说判断条件我也不会写。  发表于 2018-9-16 22:51
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19362
在线时间
2316 小时
注册时间
2015-7-4
帖子
938
5
 楼主| 发表于 2018-9-16 22:54:43 | 只看该作者
感谢几位出手相助,其实用强制设定目标是最方便的,
$gameTemp.setDestination(this.actor.x, this.actor.y);
但是那个 y 值不知道怎么回事,总是不对,x方向是原地不动的,
就 y 方向一直向下跑,不知道有没人知道原因。

点评

太幸运了,终于给我找到了。$gameTemp.setDestination($gamePlayer.x+1,$gamePlayer.y); 不过理解不了一个 +1 一个不 +1 。  发表于 2018-9-16 23:42
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
220
在线时间
45 小时
注册时间
2019-10-1
帖子
35
6
发表于 2021-6-5 11:18:29 | 只看该作者
Fan723 发表于 2018-9-16 22:54
感谢几位出手相助,其实用强制设定目标是最方便的,
$gameTemp.setDestination(this.actor.x, this.actor.y ...

感谢大佬三年前进行的探索,这个结论对我很有用

点评

哦!这个其实是有Bug的,该方法已弃用多年。  发表于 2021-6-5 11:41
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
220
在线时间
45 小时
注册时间
2019-10-1
帖子
35
7
发表于 2021-6-6 20:08:54 | 只看该作者
Fan723 发表于 2018-9-16 22:54
感谢几位出手相助,其实用强制设定目标是最方便的,
$gameTemp.setDestination(this.actor.x, this.actor.y ...

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

点评

重写这个方法吧,那时候年轻不懂事,调用该方法,以为设置坐标为当前位置就可以不动,后来看了别人重写方法成不执行,才发现自己是多么愚蠢。  发表于 2021-6-6 22:01
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-3 07:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表