class chaser extends rotater{

float mysize=20;
  float turnspeed;

  chaser(float pos, int diff){
    x = pos;
    y = height - groundheight - (mysize/2.0);
  if(diff == DIFFNORMAL){
    speed = 8;
    turnspeed = .09;
  } else {
    speed = 9;
    turnspeed = .1;
    
  }
    angle = -PI/2;

    calcangles();
    ima="chaser";
  }

  void draw(){
    stroke(0);
    // noFill();
    // ellipse(x,y,20,20);
    pushMatrix();
    translate(x,y);
    rotate(angle);
    fill(128,0,0);  
    triangle(10,0,-8,-2,-8,2);

    popMatrix();

  }

boolean killed = false;
boolean active = false;

  void move(){
    if(active && (!killed)){

   float  mentalchaserx = x;
float     mentalplanex = p.x;
    /*
    if(mentalchaserx < 0) mentalchaserx += virtualscreenwidth;
    if(mentalplanex < 0) mentalplanex += virtualscreenwidth;
    if(mentalchaserx > width) mentalchaserx -= virtualscreenwidth;
    if(mentalplanex > width) mentalplanex -= virtualscreenwidth;
    */
      
      
      
    float dx = (mentalplanex -mentalchaserx);
    
    if(abs(dx) > width/2){
       dx *= -1.0; 
    }
    
    float dy = ( p.y - y);
    float wantangle = atan2(dy, dx);
    float anglediff = (angle - wantangle);  

    anglediff /= PI;
//this next bit catches the "runaround"
    if(anglediff > 1){
        anglediff -= 2;
    }
    if(anglediff < -1){
        anglediff += 2;
    }

//print("wantangle:"+(wantangle/PI)+"    angle  "+(angle/PI)+" diff: "+ (anglediff)+"  ");
    if(anglediff > 0){
    //  println(" <-\\");
    angle -= turnspeed; 
    } 
    else {
    //  println(" /->");

      angle += turnspeed; 
    }

    //stroke(255,0,0);
    //line(250,250,250+(cos(wantangle) * 30), 250+(sin(wantangle)*30));

//    line(250,250,245,245);
  //  line(250,250,255,255);

    //angle +=  turnspeed;
    calcangles();
    super.move();
    }
  }

}