I have an actor that I want to be able to detect other actors(walls and such) and not move through them. Right now I have this:And it works well. One problem, I cant turn the actor, only move it's position. In some games I just want to move the actor but h shoots in this scenario so he must turn. So I want to use the turn() method. If I use instead How can I get the my actor to detect the barriers?
{
// get user directions
int dx = 0, dy = 0;
if (Greenfoot.isKeyDown("up")) dy--;
if (Greenfoot.isKeyDown("down")) dy++;
if (Greenfoot.isKeyDown("left")) dx--;
if (Greenfoot.isKeyDown("right")) dx++;
// move the actor
setLocation(getX()+dx, getY()+dy);
//dont go through walls and shit
if (getOneIntersectingObject(Dabree.class) != null) setLocation(getX()-dx, getY()-dy);
if (getOneIntersectingObject(barrier.class) != null) setLocation(getX()-dx, getY()-dy);
if (getOneIntersectingObject(Tele.class) != null) setLocation(getX()-dx, getY()-dy);
}{
// move and turn methods
if(Greenfoot.isKeyDown("up")){
move(2);
}
if(Greenfoot.isKeyDown("left")){
turn(-4);
}
if(Greenfoot.isKeyDown("right")){
turn(4);
}
if(Greenfoot.isKeyDown("down")){
move(-2);
}
}

