首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于鼠标位置的移动-不必要的偏移

基于鼠标位置的移动-不必要的偏移
EN

Stack Overflow用户
提问于 2014-04-03 19:40:27
回答 1查看 536关注 0票数 2

我在做乒乓游戏,我不能让玩家和AI的桨正确移动。这个解释可能有点混乱。

首先是玩家的桨。我将提出一个独立的问题,让AI保持这个职位的长度在合理的范围内。

HEIGHTWIDTH定义了桨的大小,image是桨的纹理。

代码语言:javascript
复制
double mouseY = MouseInfo.getPointerInfo().getLocation().getY();
        if (mouseY < getHeight() - HEIGHT) {
            paddleLeft.setLocation(2 * WIDTH, mouseY);
            image.setLocation(2 * WIDTH, mouseY);
            image.sendToFront();
        } else {     

                   // stop paddle from sliding off screen

            paddleLeft.setLocation(2 * WIDTH, getHeight() - HEIGHT);
            image.setLocation(2 * WIDTH, getHeight() - HEIGHT);
            image.sendToFront();

玩家的桨被鼠标控制。现在,当我将光标移动到屏幕顶部时,我的划桨(顶部边框)就会接触到窗口的顶部。这可以被认为是正确的,但我不喜欢。如果我将窗口移到屏幕的中央,我需要将鼠标移出屏幕以控制方向。它的工作方式如下:

我希望桨的顶部边框与游标Y坐标平行。我尝试使用不同的代码获取鼠标位置:

addMouseListeners();

代码语言:javascript
复制
public void mouseMoved(MouseEvent e) {
     mouseY=e.getYOnScreen();
}

但是,我的光标仍然没有与划桨对齐,我只能在屏幕截图2所示的范围内移动我的桨:(光标在顶部窗口边框上)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-03 19:48:42

从屏幕鼠标坐标中减去框架的X和Y屏幕位置,以获得框架中的偏移量,或者向框架本身添加一个适当的MouseListener,这将在窗口客户端坐标中提供鼠标位置。

侦听器方法通常更好,因为它意味着您也可以,例如,添加其他组件到您的窗口,而不影响鼠标代码;它保持游戏框架内的所有东西都是独立的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22847390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档