我有两个在水平方向上移动的图像。每当两个图像之间发生冲突时,我希望它们消失,这就是我的问题。有人可以帮我怎么做吗?

顺便说一下,这是我的代码。您可以根据需要检查它:

private boolean checkCollisions()
{
    for (Sprite r1 : z_sorted_sprites)
    {
        for (Sprite r2 : z_sorted_sprites)
        {
            if (r1 == r2)
            {
                continue;
            }

            RectangleX me = r1.getBounds();
            RectangleX other = r2.getBounds();

            if (me.intersects(other))
            {
                collision = true;

                System.out.println("collision : " + r1.getName() + " with " + r2.getName());

                // disappear(me,other);
            }
            else
            {
                collision = false;
                System.out.println("no collision");
            }
        }

    }
    return collision;
}

最佳答案

请尝试以下操作:

在您的paint(Graphics g)方法中,执行以下操作:

if(!checkCollisions()){
   //draw your sprites
   //g.drawImage(...);
}


并且在您的checkCollisions()方法中,当检测到碰撞时调用repaint。

if (me.intersects(other))
            {
                collision = true;

                System.out.println("collision : " + r1.getName() + " with " + r2.getName());

                repaint();
            }

07-25 22:49