当击中球拍时,Java乒乓球不会向另一个方向移动

时间:2018-01-07 12:52:44

标签: java

我正在尝试用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();
    }
}

2 个答案:

答案 0 :(得分:0)

我相信你的checkCollision功能是不完整的...不知何故,该功能必须能够访问两个桨位当前位置,以检查球是否击中其中一个桨......

另一个建议是仅使用一个标记来指示一个轴上的移动,例如,boolean monvingUp = true表示球在Y轴向上移动,当为假时,此标志表示向下移动在Y轴......

答案 1 :(得分:0)

我将=更改为>它解决了问题