Beispiel #1
0
// updateBullet
// updates a bullet according to the game rules
void updateBullet(Bullet& obj)
{
  byte id;
  
  if(obj.active)
  {
    // horizontal physics
    obj.x += obj.vx;
    
    // vertical physics
    obj.y += obj.vy;
    
    // collide with zombies
    for(id=0; id<ZOMBIE_MAX; id++)
    {
      if(zombieCollision(zombies[id], obj.x, obj.y, BULLET_WIDTH, BULLET_HEIGHT))
      {
        obj.active = false;
        zombieHealthOffset(zombies[id], -1);
        break;
      }
    }
    
    // delete if gone off screen
    if((obj.x < mapPositionX) || (obj.y < mapPositionY) || (obj.x > WIDTH + mapPositionX) || (obj.y > HEIGHT + mapPositionY))
    {
      obj.active = false;
    }
  }
}
Beispiel #2
0
//movement of zombies to follow player
void Zombie::move(){

     if((x()<player1->x()) && (y()<player1->y())){
        zombieCollision();
        setPos(x()+.7, y() + .7);
        zombieCollision();
        collision();
        deleteZombie();
        direct=1;
    }
    if((x()>player1->x()) && (y()<player1->y())){
        zombieCollision();
        setPos(x()-.7,y()+.7);
        zombieCollision();
        collision();
        deleteZombie();
        direct=2;
    }
    if((x()<player1->x()) && (y()>player1->y())){
        zombieCollision();
        setPos(x()+.7, y() -.7);
        zombieCollision();
        collision();
        deleteZombie();
        direct=3;
    }
    if((x()>player1->x()) && (y()>player1->y())){
        zombieCollision();
        setPos(x()-.7,y()-.7);
        zombieCollision();
        collision();
        deleteZombie();
        direct=4;
    }


}