Hello. I am trying to make an attack method for an enemy in my game. I was thinking that I could somehow trigger the walkRight method when the players location is to the right of the enemy and trigger walkLeft when the players location is to the left of the enemy. I would appreciate any help that can help me accomplish this.
My code:
import greenfoot.*;
public class Enemy extends Actor
{
private final GreenfootImage LMg1 = new GreenfootImage("EnemyWalking1.png");
private final GreenfootImage LMg2 = new GreenfootImage("EnemyWalking2.png");
private final GreenfootImage LMg3 = new GreenfootImage("EnemyWalking3.png");
private final GreenfootImage LMg4 = new GreenfootImage("EnemyWalking4.png");
private final GreenfootImage LMg5 = new GreenfootImage("EnemyWalking5.png");
private final GreenfootImage LMg6 = new GreenfootImage("EnemyWalking6.png");
private final GreenfootImage LMg7 = new GreenfootImage("EnemyWalking7.png");
private final GreenfootImage LMg8 = new GreenfootImage("EnemyWalking8.png");
private final GreenfootImage RMg1 = new GreenfootImage(LMg1);
private final GreenfootImage RMg2 = new GreenfootImage(LMg2);
private final GreenfootImage RMg3 = new GreenfootImage(LMg3);
private final GreenfootImage RMg4 = new GreenfootImage(LMg4);
private final GreenfootImage RMg5 = new GreenfootImage(LMg5);
private final GreenfootImage RMg6 = new GreenfootImage(LMg6);
private final GreenfootImage RMg7 = new GreenfootImage(LMg7);
private final GreenfootImage RMg8 = new GreenfootImage(LMg8);
private int speed = 10;
private int frame;
private boolean going;
private boolean facingRight;
private boolean attacking;
private int delay = 5;
public Enemy()
{
setImage(LMg1);
going = false;
facingRight = false;
attacking = false;
RMg1.mirrorHorizontally();
RMg2.mirrorHorizontally();
RMg3.mirrorHorizontally();
RMg4.mirrorHorizontally();
RMg5.mirrorHorizontally();
RMg6.mirrorHorizontally();
RMg7.mirrorHorizontally();
RMg8.mirrorHorizontally();
scaleEnemy();
}
public void scaleEnemy() {
LMg1.scale(LMg1.getWidth() + 200, LMg1.getHeight() + 200);
LMg2.scale(LMg2.getWidth() + 200, LMg2.getHeight() + 200);
LMg3.scale(LMg3.getWidth() + 200, LMg3.getHeight() + 200);
LMg4.scale(LMg4.getWidth() + 200, LMg4.getHeight() + 200);
LMg5.scale(LMg5.getWidth() + 200, LMg5.getHeight() + 200);
LMg6.scale(LMg6.getWidth() + 200, LMg6.getHeight() + 200);
LMg7.scale(LMg7.getWidth() + 200, LMg7.getHeight() + 200);
LMg8.scale(LMg8.getWidth() + 200, LMg8.getHeight() + 200);
}
public void attack(){
attacking = true;
}
public void walkRight()
{
going = true;
facingRight = true;
frame ++;
if(frame <=1 * delay)
{
}
else if(frame <=2 * delay)
{
setImage(RMg1);
}
else if(frame <=3 * delay)
{
setImage(RMg2);
}
else if (frame <=4 * delay)
{
setImage(RMg3);
} else if (frame <=5 * delay)
{
setImage(RMg4);
} else if (frame <=6 * delay)
{
setImage(RMg5);
}else if (frame <=7 * delay)
{
setImage(RMg6);
}else if (frame <=8 * delay)
{
setImage(RMg7);
}else if (frame <=9 * delay)
{
setImage(RMg8);
frame =1;
return;
}
}
public void walkLeft()
{
going = true;
facingRight = true;
frame ++;
if(frame <=1 * delay)
{
}
else if(frame <=2 * delay)
{
setImage(LMg1);
}
else if(frame <=3 * delay)
{
setImage(LMg2);
}
else if (frame <=4 * delay)
{
setImage(LMg3);
} else if (frame <=5 * delay)
{
setImage(LMg4);
} else if (frame <=6 * delay)
{
setImage(LMg5);
}else if (frame <=7 * delay)
{
setImage(LMg6);
}else if (frame <=8 * delay)
{
setImage(LMg7);
}else if (frame <=9 * delay)
{
setImage(LMg8);
frame =1;
return;
}
}
public void act()
{
attack();
}
}

