You could just replace those method calls ('wanderTurn' and 'wonderMove') with 'turn(1)' and 'move(1)' just to start.
if (turnPhase) phaseTimer = 1;
if (turnPhase) phaseTimer = 1;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Enemy_Test1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Enemy_Test1 extends Animal
{
private SimpleTimer timer = new SimpleTimer();
// instance fields
private boolean turnPhase;
private int phaseTimer = -1;
public void act()
{
int x1 = getX(), y1 = getY();
if (!getObjectsInRange(800,Gun_Test1.class).isEmpty())
{
int x = getX(), y = getY();
Gun_Test1 gun_test1 = (Gun_Test1) getWorld().getObjects(Gun_Test1.class).get(0);
turnTowards(gun_test1.getX(), gun_test1.getY());
move(10);
shoot();
}
else
{
// control code (when out of range of or path obstructed toward player)
int sign = (int)Math.signum(phaseTimer); // '1' means moving or turning and '-1' means stopped after moving or turning
phaseTimer -= sign; // step toward zero
if (phaseTimer == 0)
{
if (sign == -1)
{
if (turnPhase) phaseTimer = 20+Greenfoot.getRandomNumber(150);
if (turnPhase) phaseTimer = 1;
turnPhase = !turnPhase;
}
else
{
if (turnPhase) phaseTimer = -(20+Greenfoot.getRandomNumber(360));
else phaseTimer = -(20+Greenfoot.getRandomNumber(50));
}
}
if (sign > 0)
{
if (turnPhase) turn(Greenfoot.getRandomNumber(360)); else move(6);
}
}
if (atWorldEdge() || isTouching(Walltest1.class) || isTouching(Walltest2.class))
{
turn(160+Greenfoot.getRandomNumber(180)-90);
}
if (isTouching(Walltest1.class) || isTouching(Walltest2.class))
{
setLocation(x1, y1);
}
}
public void shoot()
{
if (timer.millisElapsed() >= 400)
{
shootBullet();
timer.mark();
}
}
public void shootBullet()
{
Enemy_Bullet_Test1 enemy_bullet = new Enemy_Bullet_Test1();
enemy_bullet.setRotation(getRotation());
getWorld().addObject(enemy_bullet, getX(), getY());
}
}
if (turnPhase) phaseTimer = 1;
if (turnPhase) phaseTimer = 1;
if (turnPhase) phaseTimer = 1;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Enemy_Test1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Enemy_Test1 extends Animal
{
private SimpleTimer timer = new SimpleTimer();
// instance fields
private boolean turnPhase;
private int phaseTimer = -1;
public void act()
{
int x1 = getX(), y1 = getY();
if (!getObjectsInRange(800,Gun_Test1.class).isEmpty())
{
int x = getX(), y = getY();
Gun_Test1 gun_test1 = (Gun_Test1) getWorld().getObjects(Gun_Test1.class).get(0);
turnTowards(gun_test1.getX(), gun_test1.getY());
move(10);
shoot();
}
else
{
// control code (when out of range of or path obstructed toward player)
int sign = (int)Math.signum(phaseTimer); // '1' means moving or turning and '-1' means stopped after moving or turning
phaseTimer -= sign; // step toward zero
if (phaseTimer == 0)
{
if (sign == -1)
{
if (turnPhase) phaseTimer = 20+Greenfoot.getRandomNumber(150);
else phaseTimer = 10+Greenfoot.getRandomNumber(360);
turnPhase = !turnPhase;
}
else
{
if (turnPhase) phaseTimer = 1;
else phaseTimer = -(20+Greenfoot.getRandomNumber(50));
}
}
if (sign > 0)
{
if (turnPhase) turn(Greenfoot.getRandomNumber(360)); else move(6);
}
}
if (atWorldEdge() || isTouching(Walltest1.class) || isTouching(Walltest2.class))
{
turn(160+Greenfoot.getRandomNumber(180)-90);
}
if (isTouching(Walltest1.class) || isTouching(Walltest2.class))
{
setLocation(x1, y1);
}
}
public void shoot()
{
if (timer.millisElapsed() >= 400)
{
shootBullet();
timer.mark();
}
}
public void shootBullet()
{
Enemy_Bullet_Test1 enemy_bullet = new Enemy_Bullet_Test1();
enemy_bullet.setRotation(getRotation());
getWorld().addObject(enemy_bullet, getX(), getY());
}
}
//line 41: else phaseTimer = 1; //line 46 if (turnPhase) phaseTimer = -(20+Greenfoot.getRandomNumber(360));
protected static final LineOfSight los = new LineOfSight();
private class LineOfSight extends Actor
{
public LineOfSight()
{
setImage(new GreenfootImage(1, 1));
}
public boolean obstructedView(Actor actor1, Actor actor2)
{
int xOffset = actor2.getX()-actor1.getX();
int yOfffset = actor2.getY()-actor1.getY();
int lineLength = (int)Math.hypot(xOffset, yOffset);
int lineRotation = (int)(Math.atan2(yOffset, xOffset)*180/Math.PI);
if (getWorld() != actor1.getWorld()) actor1.getWorld().addObject(this, actor1.getX(), actor1.getY());
setLocation(actor1.getX(), actor1.getY());
setRotation(lineRotation);
getImage().scale(lineLength, 2);
move(lineLength/2);
return getIntersectingObjects(null).size() > 2;
}
}if (!getObjectsInRange(800,Gun_Test1.class).isEmpty())
{
Gun_Test1 gun_test1 = (Gun_Test1) getWorld().getObjects(Gun_Test1.class).get(0);
if (!obstructedView(this.gun_test1)
{
int x = getX(), y = getY();
turnTowards(gun_test1.getX(), gun_test1.getY());
move(10);
shoot();
}
}public void act()
{
int x1 = getX(), y1 = getY();
if (!getObjectsInRange(1000,Bullet_Test1.class).isEmpty() && (timer.millisElapsed() >= 2000))
{
if (!getObjectsInRange(10000,Gun_Test1.class).isEmpty())
{
int x = getX(), y = getY();
Gun_Test1 gun_test1 = (Gun_Test1) getWorld().getObjects(Gun_Test1.class).get(0);
turnTowards(gun_test1.getX(), gun_test1.getY());
move(10);
shoot();
}
}