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

Project1

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

[有事请教] 怎么获取鼠标位置,不点击(解决)

[复制链接]

Lv4.逐梦者

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

开拓者

跳转到指定楼层
1
发表于 2018-9-8 07:02:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 yang1zhi 于 2020-3-18 16:04 编辑

TouchInput.x  是要点击后才会刷新
也查不到TouchInput.x是读哪里


--------------------------------------------

用百度搜索到的方法可以了

var movex; var movey;                     //用来接受鼠标位置的全局变量
function mousemove(e)
{
       e=e  || window.event;
       if(e.pageX || e.pageY)
       {
                movex=e.pageX;
                movey=e.pageY
       }            
}   

document.onmousemove=mousemove;



----------------------------------------------
更新不受分辨率影响

var movex; var movey;                     //用来接受鼠标位置的全局变量
function mousemove(e)
{
       e=e  || window.event;
       if(e.pageX || e.pageY)
       {
                movex = Graphics.pageToCanvasX(e.pageX);
                movey = Graphics.pageToCanvasY(e.pageY);
       }            
}   

document.onmousemove = mousemove;

评分

参与人数 4+4 收起 理由
Drill_up + 1 塞糖
wr282828 + 1 塞糖
康姆图帕帕 + 1 塞糖
白嫩白嫩的 + 1 塞糖

查看全部评分

Lv3.寻梦者

梦石
0
星屑
3750
在线时间
1177 小时
注册时间
2016-8-9
帖子
2395

开拓者

2
发表于 2018-9-9 22:42:53 | 只看该作者
谢谢您有问题通过自己解决,并且还发布出解决方案来惠及我等脚本盲
酸酸甜甜就④哇噢
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19350
在线时间
2315 小时
注册时间
2015-7-4
帖子
937
3
发表于 2018-9-17 18:02:24 | 只看该作者
请问一下楼主,这个是相对于电脑屏幕的坐标,还是相对于游戏窗口的坐标,还是相对于地图位置的坐标啊?

点评

游戏窗口  发表于 2018-9-17 19:51
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22121
在线时间
1058 小时
注册时间
2019-3-5
帖子
1424
4
发表于 2020-3-18 15:56:26 | 只看该作者

请教一下,这段代码无法直接在游戏里应用吗?为什么我把变量1、2等于var movex,var movey无法获取数值。

点评

做成JS,放到插件里  发表于 2020-3-18 16:01
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22121
在线时间
1058 小时
注册时间
2019-3-5
帖子
1424
5
发表于 2020-3-18 16:15:17 | 只看该作者
本帖最后由 Zeldashu 于 2020-3-18 19:03 编辑


已写成插件,并且在地图上使用一个并行事件运行$gameVariables.value(1) = var movex;这条命令,可仍然没有反应。
难道是需要把获取值的方法也写进去吗?

更新:
显示如下错误代码

点评

而且VAR是用来定义变量的。你要使用就直接取movex就已经是鼠标X坐标了。可以直接用的  发表于 2020-3-19 00:34
$gameVariables.value(1) = movex这个写的格式就是错的。变量设定是$gameVariables.setValue(id, 值);括号是函数,不能直接等号赋值  发表于 2020-3-19 00:33
我没有使用YEP,不知道这个情况。你试试楼下的方法  发表于 2020-3-19 00:31
显示如上错误代码,不清楚是否和yep核心冲突。  发表于 2020-3-18 19:04
试过了,依旧没有任何变化。  发表于 2020-3-18 19:02
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3750
在线时间
1177 小时
注册时间
2016-8-9
帖子
2395

开拓者

6
发表于 2020-3-18 22:26:34 | 只看该作者
本帖最后由 白嫩白嫩的 于 2020-3-18 23:11 编辑
Zeldashu 发表于 2020-3-18 16:15
已写成插件,并且在地图上使用一个并行事件运行$gameVariables.value(1) = var movex;这条命令,可仍然没 ...



我是从这贴偷师的



把rpg_core.js 第3763行的

TouchInput._onMouseMove = function(event) {
    if (this._mousePressed) {
        var x = Graphics.pageToCanvasX(event.pageX);
        var y = Graphics.pageToCanvasY(event.pageY);
        this._onMove(x, y);
    }
};

修改mousepressed判断就行了

TouchInput._onMouseMove = function(event) {
   
        var x = Graphics.pageToCanvasX(event.pageX);
        var y = Graphics.pageToCanvasY(event.pageY);
        this._onMove(x, y);
   
};

对,就是这么改

然后装个dtext 地图上显示变量测试



亲测可行

话说我搜索鼠标坐标相关帖子的时候有几个帖子也有你的身影呢,是不是时间长忘记了

点评

我确实记得有相关帖子,这个帖子我也翻过,只是按照他的方法没成功。现在搞明白了(原因在楼下)  发表于 2020-3-19 13:40
666666  发表于 2020-3-18 23:34
酸酸甜甜就④哇噢
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22121
在线时间
1058 小时
注册时间
2019-3-5
帖子
1424
7
发表于 2020-3-19 13:40:08 | 只看该作者
本帖最后由 Zeldashu 于 2020-3-19 13:55 编辑

OK,测试完毕,楼主以及楼上的方法都可以。

两种方法都需要将脚本写成插件(在rpg_core.js基础上改js有些风险),
问题应该是出在变量获取上。

楼主的方法读取数值需要将变量等于“movex”(双引号去掉),而非var movex。并且这个插件不与yep冲突。

楼上的方法就是如图那样做,只是或许会牺牲掉TouchInput.x这条脚本的功能?(点击鼠标时才获取坐标位置)


——————————————————
直接把楼主的方法写成插件放上来了,顺便加上注释说明。


shubiaozuobiao2.zip (474 Bytes, 下载次数: 135) ,如果定义成其他数值把movex和movey改掉应该也没问题?

点评

原来如此  发表于 2020-3-20 12:36
我的意思是,你不用特意把这个值放到默认的变量$gameVariables里面,可以直接使用。除非你是要用在事件的左上角,那没办法。  发表于 2020-3-20 11:18
我的意思是工程里的“设置变量”把变量x等于这两个,应该没有其他方法可以获取这个值?  发表于 2020-3-20 09:40
movex就是变量,全局变量。  发表于 2020-3-19 21:46

评分

参与人数 1+1 收起 理由
白嫩白嫩的 + 1 感谢塞尔达大佬分享研究成果

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3750
在线时间
1177 小时
注册时间
2016-8-9
帖子
2395

开拓者

8
发表于 2020-3-19 21:53:32 | 只看该作者
本帖最后由 白嫩白嫩的 于 2020-3-19 22:11 编辑
Zeldashu 发表于 2020-3-19 13:40
OK,测试完毕,楼主以及楼上的方法都可以。

两种方法都需要将脚本写成插件(在rpg_core.js基础上改js有些 ...


我的方法不点击鼠标哇呀呀呀呀呀呀呀呀呀 直接获取的哩~~~点击的话就不说了



我知道了,塞尔达大佬说的是如果我这么做了,就牺牲掉了【需要点击才能获取坐标位置】的这个功能了。

确实是啊,比如平时是直接计算的,如果做一个点击事件的话就完蛋了,因为鼠标一过去就触发了,噢漏~!!!!!!!

点评

好的好的,感谢塞尔达大佬  发表于 2020-3-21 21:48
在这个逻辑上的话,需要点击获取坐标时才获取这个坐标变量应该就没问题了。其他场合不把变量和这两个坐标挂钩应该不会造成什么影响  发表于 2020-3-20 09:38
你给出的那条脚本没有理解错的话是把“点击”这个判定条件去掉了,所以就可以即时获取坐标。而即时获取坐标其实也等于把点击获取覆盖掉了。  发表于 2020-3-20 09:37
对了,可以在判断那里加个开关?  发表于 2020-3-20 00:41
酸酸甜甜就④哇噢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 07:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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