Project1

标题: 怎么获取鼠标位置,不点击(解决) [打印本页]

作者: yang1zhi    时间: 2018-9-8 07:02
标题: 怎么获取鼠标位置,不点击(解决)
本帖最后由 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;


作者: 白嫩白嫩的    时间: 2018-9-9 22:42
谢谢您有问题通过自己解决,并且还发布出解决方案来惠及我等脚本盲
作者: Fan723    时间: 2018-9-17 18:02
请问一下楼主,这个是相对于电脑屏幕的坐标,还是相对于游戏窗口的坐标,还是相对于地图位置的坐标啊?
作者: Zeldashu    时间: 2020-3-18 15:56

请教一下,这段代码无法直接在游戏里应用吗?为什么我把变量1、2等于var movex,var movey无法获取数值。
作者: Zeldashu    时间: 2020-3-18 16:15
本帖最后由 Zeldashu 于 2020-3-18 19:03 编辑


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

更新:
显示如下错误代码

作者: 白嫩白嫩的    时间: 2020-3-18 22:26
本帖最后由 白嫩白嫩的 于 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 地图上显示变量测试



亲测可行

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

作者: Zeldashu    时间: 2020-3-19 13:40
本帖最后由 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-19 21:53
本帖最后由 白嫩白嫩的 于 2020-3-19 22:11 编辑
Zeldashu 发表于 2020-3-19 13:40
OK,测试完毕,楼主以及楼上的方法都可以。

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


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



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

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




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