gpt4 book ai didi

java - java中的鼠标位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:58:02 26 4
gpt4 key购买 nike

我正在用 Java 开发第一人称射击游戏,我想实现通过鼠标移动来旋转玩家的控件。但是在 Java 中,我只能通过 MouseListener 事件获取鼠标坐标,因此一旦鼠标光标离开监视器边缘,坐标将停止变化,我将无法转动玩家的视角。

关于如何做到这一点的任何提示/建议?谢谢。

最佳答案

我尝试按照 AerandiR 的建议使用 java.awt.Robot,但是我遇到了一些问题,其他人也可能会遇到这些问题,所以我会详细说明.

如果您的目标是将光标保持在一个位置(最好是屏幕的中心),那么您需要调用类似 robot.mouseMove(width/2, height/2);mouseMoved() 方法的末尾。通过此实现,每次鼠标离开中心时,Robot 都会将其移回中心。

但是,当机器人 将鼠标重新置于中心位置时,玩家将转回原来的位置。实际上,玩家将在原始位置和转向位置之间停滞不前。

要解决此问题,请将其定义为距中心的距离,而不是定义玩家打开鼠标现在位置和鼠标位置之间的差异的距离。

像这样:turnAmountX += e.getX() - width/2;

现在,如果机器人将鼠标重新居中,e.getX() - width/2 将始终产生零。

回顾:

    void mouseMoved(MouseEvent e) {
turnAmountX += e.getX() - width/2;
turnAmountY += e.getY() - height/2;
robot.mouseMove(this.getLocationOnScreen().x + width/2,
this.getLocationOnScreen().y + height/2;
}

关于java - java中的鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com