我有两个在水平方向上移动的图像。每当两个图像之间发生冲突时,我希望它们消失,这就是我的问题。有人可以帮我怎么做吗?
顺便说一下,这是我的代码。您可以根据需要检查它:
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();
}