我在做乒乓游戏,我不能让玩家和AI的桨正确移动。这个解释可能有点混乱。
首先是玩家的桨。我将提出一个独立的问题,让AI保持这个职位的长度在合理的范围内。
HEIGHT和WIDTH定义了桨的大小,image是桨的纹理。
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();
和
public void mouseMoved(MouseEvent e) {
mouseY=e.getYOnScreen();
}但是,我的光标仍然没有与划桨对齐,我只能在屏幕截图2所示的范围内移动我的桨:(光标在顶部窗口边框上)

发布于 2014-04-03 19:48:42
从屏幕鼠标坐标中减去框架的X和Y屏幕位置,以获得框架中的偏移量,或者向框架本身添加一个适当的MouseListener,这将在窗口客户端坐标中提供鼠标位置。
侦听器方法通常更好,因为它意味着您也可以,例如,添加其他组件到您的窗口,而不影响鼠标代码;它保持游戏框架内的所有东西都是独立的。
https://stackoverflow.com/questions/22847390
复制相似问题