From 7a53a34706240e78317171f2a82b27f3af58acd9 Mon Sep 17 00:00:00 2001 From: Steve Date: Sun, 6 Mar 2011 22:11:14 +0000 Subject: Added ability to remove multiple object on one iteration through the collision loop. --- src/tesseract/World.java | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/tesseract/World.java') diff --git a/src/tesseract/World.java b/src/tesseract/World.java index 83f6c1c..d8c16b0 100644 --- a/src/tesseract/World.java +++ b/src/tesseract/World.java @@ -313,7 +313,8 @@ public class World implements Observer { */ // Collision Detection with Aldens mar4 suggestions - int indexToRemove = -1; + //int indexToRemove = -1; + ArrayList indexesToRemove = new ArrayList(); for (int i = 0; i < myObjects.size() - 1; i++) { for (int j = i + 1; j < myObjects.size(); j++) { @@ -359,7 +360,7 @@ public class World implements Observer { j_object.switchZ(); myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object); - indexToRemove = j; + indexesToRemove.add(j); j_object.detach(); } } @@ -377,7 +378,7 @@ public class World implements Observer { j_object.switchX(); myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object); - indexToRemove = j; + indexesToRemove.add(j); j_object.detach(); } } @@ -395,7 +396,7 @@ public class World implements Observer { j_object.switchZ(); myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object); - indexToRemove = j; + indexesToRemove.add(j); j_object.detach(); } } @@ -412,7 +413,7 @@ public class World implements Observer { j_object.switchX(); myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (j_object.getVelocity().getX(), j_object.getVelocity().getZ()), j_object); - indexToRemove = j; + indexesToRemove.add(j); j_object.detach(); } } @@ -431,7 +432,7 @@ public class World implements Observer { i_object.switchZ(); myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (i_object.getVelocity().getX(), i_object.getVelocity().getZ()), i_object); - indexToRemove = i; + indexesToRemove.add(i); i_object.detach(); } } @@ -448,7 +449,7 @@ public class World implements Observer { i_object.switchX(); myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (i_object.getVelocity().getX(), i_object.getVelocity().getZ()), i_object); - indexToRemove = i; + indexesToRemove.add(i); i_object.detach(); } } @@ -465,7 +466,7 @@ public class World implements Observer { i_object.switchZ(); myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (i_object.getVelocity().getX(), i_object.getVelocity().getZ()), i_object); - indexToRemove = i; + indexesToRemove.add(i); i_object.detach(); } } @@ -482,7 +483,7 @@ public class World implements Observer { i_object.switchX(); myPeer.sendPayloadToPeer(myPeer.getPeerInDirection (i_object.getVelocity().getX(), i_object.getVelocity().getZ()), i_object); - indexToRemove = i; + indexesToRemove.add(i); i_object.detach(); } } @@ -493,10 +494,12 @@ public class World implements Observer { } } } - //if the object leaves the world, remove it from myObjects list - if ( indexToRemove >= 0) { - myObjects.remove(indexToRemove); - System.out.println("Remove index: " + indexToRemove); + //if the object leaves the world, remove it from myObjects list) { + if ( indexesToRemove.size() > 0) { + for (int i = 0; i > indexesToRemove.size(); i++) { + myObjects.remove(i); + System.out.println("Remove index: " + i); + } } // Add new children to the world. -- cgit v1.2.3