我正在尝试用Java制作游戏Pong。现在我对桨叶上的碰撞有问题。它没有朝另一个方向移动。当它碰到面板的两侧时它确实有效。
现在我只需要在它碰到桨的X值时走另一条路。 我做了一个检查碰撞的功能。
我在这里做错了什么。有人可以解释一下吗?
提前致谢
public void checkCollision()
{
if (ball.getY() == 0)
{
moveDown = true;
moveUp = false;
}
if ((ball.getY() + ball.getHeight()) == height)
{
moveDown = false;
moveUp = true;
}
if (ball.getX() == computer.getX())
{
moveRight = false;
moveLeft = true;
}
}
class TimerHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if (counter == 0)
{
Random rand = new Random();
int random = rand.nextInt(2) + 1 ;
if (random == 1)
{
moveUp = true;
moveRight = true;
counter++;
}
else if (random == 2)
{
moveDown = true;
moveLeft = true;
counter++;
}
}
controlMovement();
checkCollision();
repaint();
}
}
答案 0 :(得分:0)
我相信你的checkCollision功能是不完整的...不知何故,该功能必须能够访问两个桨位当前位置,以检查球是否击中其中一个桨......
另一个建议是仅使用一个标记来指示一个轴上的移动,例如,boolean monvingUp = true
表示球在Y轴向上移动,当为假时,此标志表示向下移动在Y轴......
答案 1 :(得分:0)
我将=更改为>它解决了问题