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(); }
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; }
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(); }
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(); }
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!"); } }
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; }