Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/* inspired  Chase game with screen wrapping:
 Dw Armah, use arrow keys to move around , Figure out smart your enemy and get the 
 survive */
///Classes////////
Player p;
Enemy e;

/////////////////
boolean left, right, down, up;
/////////////////
void setup() {
  size(800, 600);
  e=new Enemy();//data type
  p=new Player();//data type
}
void draw() {
  background(170);
  p.update();
  p.display();
  e.update();
  e.display();
}

void keyPressed() {

  if (keyCode==37) {//move left
    left=true;
  } else if (keyCode==39) {//move right 
    right=true;
  } else if (keyCode==38) {//up
    up = true;
  } else if (keyCode==40) {//down
    down=true;
  }
}
void keyReleased() {
  if (keyCode==37) {//stop moving left
    left=false;
  } else if (keyCode==39) {//stop moving right
    right=false;
  } else if (keyCode==38) {//jumping
    up = false;
  } else if (keyCode==40) {
    down=false;
  }
}
//////////////////////
/////////////
///classes//
////////////
class Enemy {
  //////////data
  float enemyX;
  float enemyY;
  float enemySpeed;


  Enemy() {//class defintion/////setup(intialize)
    enemyX=384;
    enemyY=300;
    enemySpeed=1;
  }
 void update() {
     /////////////the chase conditions//////////////////
    if (enemyX < p.playerX) {// if left of player chase left
      enemyX += enemySpeed*5;
    } 
    if (enemyY<p.playerY) {//if above move down toward player
      e.enemyY += enemySpeed*5;
    }
    if (enemyX>p.playerX) {// if to the right of player chase right
      enemyX -= enemySpeed*5;
      if (e.enemyY>p.playerX) {// if bellow  player chase up
        enemyY -= enemySpeed*5;
      }
    }// taunt
    if (enemyX == p.playerX||enemyY==p.playerY) {// if left or above equalplayer
    fill(255,0,0,50);
     rect(0,0,800,600);//screen fill 
     fill(255);
     text("Gotcha Now", width/2,height/2);
    }
    else if (enemyX==p.playerX||e.enemyY==p.playerX) {// if to the right or below =player
     fill(255,0,0,50);
     rect(0,0,800,600);//screen fill 
     fill(255);
     text("Gotcha now", width/2,height/2);// screen fill
      
      
      }
  }

  void display() { ////methods (aka your fuctions) go in here -->draw
    fill(242, 4, 47);
    noStroke();
    rect(enemyX, enemyY, 70, 70);
    /////////////the chase conditions//////////////////
   
  }}
///////////////////////////////////////////////////////////////
class Player {
  //data

  float playerX;
  float playerY;
  float playerSpeed;

  Player() {//intialize
    float playerX=400;
    float playerY=500;
    float playerSpeed=30;
  }



   void update() {
    if (left) {
      playerX+=playerSpeed-1*5;
    }
    if (right) {
      playerX+=playerSpeed+1*5;
    }
    if (up) { 
      playerY+=-playerSpeed-1*5;
    }
    if (down) { 
      playerY+=-playerSpeed+1*5;
    }
    if (!left&&!right&&!up&&!down) {
      playerSpeed=0;
    }
    if (playerX<0) {// screen wrap on X
      playerX=width;
    }
    if (playerX > width) {
      playerX=0;
    }
    if (playerY<0) {// screen wrap on Y
      playerY=height;
    }
    if (playerY > height) {
      playerY=0;
    }
  }


  void display() {
    fill(255);
    noStroke();
    rect(playerX, playerY, 30, 30);
  }
}