仅保存最后一次鼠标单击坐标的变量

Posted

技术标签:

【中文标题】仅保存最后一次鼠标单击坐标的变量【英文标题】:A variable that holds coordinates of last mouse click only 【发布时间】:2013-03-31 09:07:50 【问题描述】:

这就是我想要完成的。我希望一个项目显示在屏幕上鼠标单击的最后一个位置。目前它有点工作,但每次我点击其他地方时,所说的项目也会移动到那里。我只是希望它是静态的。

这里有一些代码:

全局变量 px 和 py。用于按住鼠标点击:

private int px = 250; // initial coordinates
private int py = 250;

鼠标点击馈送全局 px 和 py:

private void testPress(int x, int y) 
    if (!isPaused && !gameOver) 
        // do something..
        px = x;
        py = y;
        girlP.setDestination((px-(girlP.getImage().getWidth(this)/2)), 
                (py-(girlP.getImage().getHeight(this)/2)));

        //System.out.println(px + ", " + py);
    

px 和 py 会不断更新新值。我想要的是一种只按住最后一次鼠标点击的方法

【问题讨论】:

您希望它在最后点击的位置,但在您点击时不移动?你的问题目前没有意义。 @keppil 是的,这有点令人困惑。基本上,我有一个角色可以移动到鼠标指定的任何地方。性格是有种花的能力。我想在角色站立的任何地方(即最后一个鼠标点)种一朵花。 首先,您需要定义某种“固定”操作 - 也就是应该将您的项目“固定”到某个位置的鼠标单击与不应将您的项目“固定”到某个位置的鼠标单击之间的区别.此外,您不应该使用全局状态,除非您希望只有一项会按照描述的方式运行。 @Perception 如果我以某种方式使用数组会怎样? @blutuu - 我看不出数组将如何帮助解决更基本的设计问题。现在,如果您想存储点击位置的历史记录,那么是的,将点存储在(大小有界)数组中就可以了,但这并不能解决原始问题,即 - “点击之间有什么区别那个别针和一个没有的点击?作为一个可能的解决方案的示例,您可以定义右键单击以固定,左键单击以执行“其他任何操作”。 【参考方案1】:

请参阅this question 了解如何监听鼠标事件

您可以使用event.clickXevent.clickY 获取您监听鼠标点击的元素内的坐标,或使用event.screenXevent.screenY 获取文档内的绝对鼠标坐标。

【讨论】:

以上是关于仅保存最后一次鼠标单击坐标的变量的主要内容,如果未能解决你的问题,请参考以下文章

怎么在matlab中鼠标在坐标图上单击,记录下这一点的坐标啊

通过鼠标单击获取 matplotlib 绘图图 python 的坐标

Matlab:如何通过鼠标单击(使用'ButtonDownFcn')将多个变量点从绘图保存到工作区?

在鼠标单击时将 x 和 y 线保存为变量

为啥 Slime 检查仅适用于鼠标单击而不适用于键盘命令?

AutoHotkey:用鼠标坐标计算不起作用