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(); } }