i have a wall with a code that just declare if actor is to your right move him rightand so on for the 4 directions but if you keep turnin the actor it kind f glitches through and sorry for the english don't kill me grammar police
public class Wall extends Actor
{
Actor enemy1;
Actor soldierleft;
Actor soldierright;
Actor soldierup;
Actor soldierdown;
public void act()
{
pushsoldier();
}
public void pushsoldier()
{
soldierright = getOneObjectAtOffset(+2,0,Soldier.class);
if(soldierright != null)soldierright.setLocation(soldierright.getX()+5,soldierright.getY());
soldierleft = getOneObjectAtOffset(-2,0,Soldier.class);
if(soldierleft != null)soldierleft.setLocation(soldierleft.getX()-5,soldierleft.getY());
soldierup = getOneObjectAtOffset(0,-2,Soldier.class);
if(soldierup != null)soldierup.setLocation(soldierup.getX(),soldierup.getY()-5);
soldierdown = getOneObjectAtOffset(0,+2,Soldier.class);
if(soldierdown != null)soldierdown.setLocation(soldierdown.getX(),soldierdown.getY()+5);
soldierright = getOneObjectAtOffset(+5,0,Soldier.class);
if(soldierright != null)soldierright.setLocation(soldierright.getX()+5,soldierright.getY());
soldierleft = getOneObjectAtOffset(-5,0,Soldier.class);
if(soldierleft != null)soldierleft.setLocation(soldierleft.getX()-5,soldierleft.getY());
soldierup = getOneObjectAtOffset(0,-5,Soldier.class);
if(soldierup != null)soldierup.setLocation(soldierup.getX(),soldierup.getY()-5);
soldierdown = getOneObjectAtOffset(0,+5,Soldier.class);
if(soldierdown != null)soldierdown.setLocation(soldierdown.getX(),soldierdown.getY()+5);
}
}
Actor obstacle = getOneIntersectingObject(Obstacle.class);
if (obstacle != null){
setLocation(getX() -(dx*xSpeed), getY());
}
Actor obstacle = getOneIntersectingObject(Obstacle.class);
if (obstacle != null){
setLocation(getX() -(dx*xSpeed), getY());
}