This site requires JavaScript, please enable it in your browser!
Greenfoot back
Entity1037
Entity1037 wrote ...

2012/12/18

Can you declare multiple classes as one actor?

Entity1037 Entity1037

2012/12/18

#
Can you make multiple classes declared as the same actor or similar? Like: Actor leftcollide = getOneObjectAtOffset(-20, 0 , Wall.class||Platform.class||Block.class); if (leftcollide!=null){xmove=0;} as apposed to: Actor leftcollide1 = getOneObjectAtOffset(-20,0,Wall.class); Actor leftcollide2 = getOneObjectAtOffset(-20,0,Platform.class); Actor leftcollide3 = getOneObjectAtOffset(-20,0,Block.class); if (leftcollide1!=null||leftcollide2!=null||leftcollide3!=null){xmove=0;}
vonmeth vonmeth

2012/12/18

#
Erm, not as far as I know. It is either one, or all (null). You could just make those 3 classes sub-classes of one class, called Obstacles, and search for just that class, I suppose.
danpost danpost

2012/12/18

#
In answer to the initial question: you cannot apply '||' to class, class. vonmeth's suggestion of making them sub-classes of a single class would be one workable solution. Another would be (at least for the case above):
if(getOneObjectAtOffset(-20,0,Wall.class)!=null ||
   getOneObjectAtOffset(-20,0,Platform.class)!=null ||
   getOneObjectAtOffset(-20,0,Block.class)!=null)
{
    xmove=0;
}
or
for(Object obj : getObjectsAtOffset(-20,0,null)) if(obj instanceof Wall.class || obj instanceof Platform.class || obj instanceof Block.class) { xmove=0; break; }
Entity1037 Entity1037

2012/12/18

#
Alright, thanks anyway.
You need to login to post a reply.