/** Draws graphics to the image */
  public void draw() {

    Graphics graphics = image.getGraphics();

    // 1. blank the previous image
    graphics.setColor(Color.WHITE);
    graphics.fillRect(0, 0, IMAGE_SIZE, IMAGE_SIZE);

    // 2. move then draw each critter.
    for (Critter critter : critterList) {
      critter.move();
      critter.draw(graphics);
    }
  }
Exemple #2
0
 /**
  * Method: makeMove() Usage: last step in act() of Critter
  * ------------------------------------------- Follower faces the same way target is and steps are
  * incremented, if target is null, it faces the direction it just moved in then calls Critters
  * makeMove to go to the new location @Postcondition: (1) <code>getLocation() == loc</code>. (2)
  * The state of all actors other than those at the old and new locations is unchanged.
  *
  * @param loc the location to move to
  */
 public void makeMove(Location loc) {
   if (target != null) {
     setDirection(target.getDirection());
     steps++;
   } else setDirection(getLocation().getDirectionToward(loc));
   super.makeMove(loc);
 }
  /** Starts the game object */
  public void start() {
    // 1. put the game in the state that it is not over.
    isOver = false;
    lastClick = true;

    // 2. construct an ArrayList of new Critters.
    //    For each Critter that you create, use the critterFactory to randomly select a subclass of
    // Critter to instantiate.
    critterList = new LinkedList<>();

    for (int i = 0; i < 3; i++) {
      critterList.add(critterFactory.makeCritter());
    }
  }