java - Comparing items within the same set to eachother -


i have set of shapes , need determine shapes intersecting which. use 2 enhanced-for-loops (one within other) not working expected. seems comparing shape itself. added println() debugging purposes , console output @ end of question.

edit: i've added code interface drawables show how intersects(rectangle rectangle) , shape.getbounds() exposed. i've added collisions class show methods do.

edit 2: can't believe neglected mention: drawables set! drawables.add() behaves set.add()

*edit 8564985294238424:*i never initialize set collisions. have fixed this. works.


class collisionmonitor (includes problem method: set<collision> getcollisions() last in class)

package platformer;  import java.util.collection; import java.util.hashset; import java.util.set;   public class collisionmonitor {  private set<collision> collisions; private set<drawable> drawables;  public collisionmonitor(set<drawable> drawables) {     this.drawables = drawables; }  public set<drawable> getdrawables() {     return drawables; }  public void setdrawables(collection<? extends drawable> drawables) {     if (drawables != null)         this.drawables = (new hashset<drawable>(drawables)); }  public set<drawable> adddrawables(collection<? extends drawable> drawables) {     if (drawables != null && drawables.isempty() == false)         this.drawables.addall(drawables);     return this.drawables; }  public set<collision> getcollisions()    //problem method! {     set<drawable> temp = drawables;      (drawable s : drawables)     {         (drawable ss : temp)         {             system.out.println(s + ", " + ss);             /*if (s.intersects(ss.getbounds()))             {                 collisions.add(new collision(s, ss));             }*/         }     }      return collisions; }  } 

interface drawable:

public interface drawable extends shape {     color color = new color(0, 0, 0);      public color getcolor(); } 

class collision

public class collision {      drawable drawable1, drawable2;      public collision(drawable drawable1, drawable drawable2)     {         this.drawable1 = drawable1;         this.drawable2 = drawable2;     }  } 

output:

platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.bullet@26dea769, platformer.bullet@26dea769 platformer.bullet@f1e9457d, platformer.bullet@f1e9457d platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.bullet@11bd2f5a, platformer.bullet@11bd2f5a platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.bullet@70a511a, platformer.bullet@70a511a platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.enemy@660de2f0, platformer.enemy@660de2f0 platformer.bullet@6ada16bc, platformer.bullet@6ada16bc platformer.bullet@6ba127e8, platformer.bullet@6ba127e8 

temp isn't different drawables. it's pointing same object.

if want exlude exact same element use:

for (drawable s : drawables) {     (drawable ss : temp)     {         if (s == ss) continue;  // don't compare object 

Comments

Popular posts from this blog

.htaccess - First slash is removed after domain when entering a webpage in the browser -

Automatically create pages in phpfox -

c# - Farseer ContactListener is not working -