【发布时间】:2014-04-04 03:52:55
【问题描述】:
我正在制作 Pong 游戏,我无法让玩家和 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 所示的范围内移动我的桨:(光标位于顶部窗口边框上)
【问题讨论】:
-
你应该不滥用
MouseInfo来做类似的事情。正如答案中已经提到的:使用正确的MouseListener,无论如何问题都会消失。
标签: java