我有两个矩形,当它们相交时我需要从屏幕上取下。我需要消失的矩形是bulletObject和e1。当我运行它们时会相交,但没有任何反应。我试图把“e1 = new Rectangle(0,0,0,0);”在“if(bulletObject.intersects(e1)){”之后,但它告诉我它永远不会被使用。我赞赏所有的帮助。下面是我的一段代码。如何在碰撞后移除矩形?
public void draw(Graphics g){
g.setColor(Color.BLUE);
g.fillRect(x, y, 40, 10);
g.fillRect(x+18, y-7, 4, 7);
Rectangle bulletObject = new Rectangle(x+18, y-7, 4, 7);
if (shot){
g.setColor(Color.BLUE);
g.fillRect(bullet.x, bullet.y , bullet.width, bullet.height);
}
//enemies
g.setColor(Color.RED);
Rectangle e1 = new Rectangle(20,75,35,35);
Rectangle e2 = new Rectangle(85,75,35,35);
Rectangle e3 = new Rectangle(150,75,35,35);
Rectangle e4 = new Rectangle(205,75,35,35);
Rectangle e5 = new Rectangle(270,75,35,35);
Rectangle e6 = new Rectangle(335,75,35,35);
Rectangle e7 = new Rectangle(405,75,35,35);
g.setColor(Color.RED);
g.fillRect(e1.x,e1.y,e1.width,e1.height);
g.fillRect(e2.x,e2.y,e2.width,e2.height);
g.fillRect(e3.x,e3.y,e3.width,e3.height);
g.fillRect(e4.x,e4.y,e4.width,e4.height);
g.fillRect(e5.x,e5.y,e5.width,e5.height);
g.fillRect(e6.x,e6.y,e6.width,e6.height);
g.fillRect(e7.x,e7.y,e7.width,e7.height);
g.fillRect(bulletObject.x,bulletObject.y,
bulletObject.width,bulletObject.height);
if (bulletObject.intersects(e1)){
g.clearRect(e1.x, e1.y,e1.width, e1.height);
}
}
将您的矩形添加到某种'List'中。检查碰撞事件,将其从'List'中删除并重新绘制...想象绘画就像画家画在画布上,你画了一些东西,很难把它画出来;) - 另外,你是什么框架使用...? – MadProgrammer
我正在使用Netbeans 7.3.1,当你说把它们添加到列表中时,你是什么意思?我是Java的新手,我没有听说过这样的事情。 – user3167316