Example #1
0
void freeze_player()
{
	if(collision_player()) 
	{
		if(j_c>=j) 
		{
			road_lim_right=temp;
			road_lim_left_c=temp_c;

			if(y_c>=y)
			{
			self_drift=1;
			self_drift_c=0;
			move_up=0;
			sky_lim_2_c=temp_y_c;
			sky_lim=temp_y;
			move_down_c=0;
			}	  									
			else if(y_c<y)							
			{
			self_drift=0;
			self_drift_c=1;
			move_up_c=0;
			sky_lim_c=temp_y_c;
			sky_lim_2=temp_y;
			move_down=0;
			}
		}

		else if(j>j_c)
		{
			road_lim_left=temp;
			road_lim_right_c=temp_c;

			if(y_c>=y)								
			{
			self_drift=1;
			self_drift_c=0;
			move_up=0;
			sky_lim_2_c=temp_y_c;
			sky_lim=temp_y;
			move_down_c=0;
			}

			else if(y_c<y)								
			{
			self_drift=0;
			self_drift_c=1;
			move_up_c=0;
			sky_lim_c=temp_y_c;
			sky_lim_2=temp_y;
			move_down=0;
			}
		}
	}
	else if(!collision_player() && !collision_valid_1() && !collision_valid_1_c() && !collision_valid_2() && !collision_valid_2_c())
		default_limit();
}
Example #2
0
HitResponse
BadGuy::collision(GameObject& other, const CollisionHit& hit)
{
  if (!is_active()) return ABORT_MOVE;

  auto badguy = dynamic_cast<BadGuy*> (&other);
  if (badguy && badguy->is_active() && badguy->m_col.get_group() == COLGROUP_MOVING) {

    /* Badguys don't let badguys squish other badguys. It's bad. */
#if 0
    // hit from above?
    if (badguy->get_bbox().get_bottom() < (bbox.get_top() + 16)) {
      if (collision_squished(*badguy)) {
        return ABORT_MOVE;
      }
    }
#endif

    return collision_badguy(*badguy, hit);
  }

  auto player = dynamic_cast<Player*> (&other);
  if (player) {

    // hit from above?
    if (player->get_bbox().get_bottom() < (m_col.m_bbox.get_top() + 16)) {
      if (player->is_stone()) {
        kill_fall();
        return FORCE_MOVE;
      }
      if (collision_squished(*player)) {
        return FORCE_MOVE;
      }
    }

    if (player->is_stone()) {
      collision_solid(hit);
      return FORCE_MOVE;
    }

    return collision_player(*player, hit);
  }

  auto bullet = dynamic_cast<Bullet*> (&other);
  if (bullet)
    return collision_bullet(*bullet, hit);

  return FORCE_MOVE;
}
Example #3
0
void collision_traff2_c()
{
		if(car1_x2>=j_c) 
		{
			road_lim_right_c=temp_c;

			if(car1_y2>=y_c)
			{
			self_drift_c=1;
			move_up_c=0;
			sky_lim_c=temp_y_c;

			}	  									
			else if(car1_y2<y_c+100)							
			{
			self_drift_c=0;
			sky_lim_2_c=temp_y_c;
			 
			}
		}

		else if(j_c>car1_x2)
		{
			road_lim_left_c=temp_c;

			if(car1_y2>=y_c)								
			{
			self_drift_c=1;
			move_up_c=0;
			sky_lim_c=temp_y_c;
			}
			else if(car1_y2<y_c+100)								
			{
			self_drift_c=0;
			sky_lim_2_c=temp_y_c;
			 
			}
		}
		else if(!collision_player() && !collision_valid_1() && !collision_valid_1_c() && !collision_valid_2() && !collision_valid_2_c())
			default_limit();
}
Example #4
0
void collision_traff1()
{
		if(car1_x>=j) 
		{
			road_lim_right=temp;

			if(car1_y>=y)
			{
			self_drift=1;
			move_up=0;
			sky_lim=temp_y;
			}	  									
			else if(car1_y<y+100)							
			{
			self_drift=0;
			sky_lim_2=temp_y;
			  
			}
		}

		else if(j>car1_x)
		{
			road_lim_left=temp;


			if(car1_y>=y)								
			{
			self_drift=1;
			move_up=0;
			sky_lim=temp_y;
			}
			else if(car1_y<y+100)								
			{
			self_drift=0;
			sky_lim_2=temp_y;
			  
			}
		}
		else if(!collision_player() && !collision_valid_1() && !collision_valid_1_c() && !collision_valid_2() && !collision_valid_2_c())
			default_limit();
}
Example #5
0
void collision_report()
{
	if(collision_player())
	{
		//iText(400,400,"MARA GELUM RE!");
		collision++;
		collision_c++;
	}
	if(collision_valid_1() || collision_valid_2())
	{
		collision++;
		//iText(400,400,"MARA GELUM RE traffic!");
	}

	if(collision_valid_2_c() || collision_valid_1_c())
	{
		collision_c++;
		//iText(400,400,"MARA GELUM RE traffic_c!");
	}

}
Example #6
0
HitResponse
BadGuy::collision(GameObject& other, const CollisionHit& hit)
{
  if (!is_active()) return ABORT_MOVE;

  BadGuy* badguy = dynamic_cast<BadGuy*> (&other);
  if(badguy && badguy->is_active() && badguy->get_group() == COLGROUP_MOVING) {

    /* Badguys don't let badguys squish other badguys. It's bad. */
#if 0
    // hit from above?
    if (badguy->get_bbox().p2.y < (bbox.p1.y + 16)) {
      if(collision_squished(*badguy)) {
        return ABORT_MOVE;
      }
    }
#endif

    return collision_badguy(*badguy, hit);
  }

  Player* player = dynamic_cast<Player*> (&other);
  if(player) {

    // hit from above?
    if (player->get_bbox().p2.y < (bbox.p1.y + 16)) {
      if(collision_squished(*player)) {
        return FORCE_MOVE;
      }
    }

    return collision_player(*player, hit);
  }

  Bullet* bullet = dynamic_cast<Bullet*> (&other);
  if(bullet)
    return collision_bullet(*bullet, hit);

  return FORCE_MOVE;
}