void cMushroom::Handle_Collision_Box(ObjectDirection cdirection, GL_rect* r2) { if (cdirection == DIR_DOWN) { m_vely = -30.0f; if (m_pos_x > r2->m_x && m_velx < 0.0f) { Turn_Around(DIR_LEFT); } else if (m_pos_x < r2->m_x && m_velx > 0.0f) { Turn_Around(DIR_RIGHT); } } else if (cdirection == DIR_LEFT || cdirection == DIR_RIGHT) { m_vely = -13.0f; Turn_Around(cdirection); } else { return; } Reset_On_Ground(); }
void cSpikeball :: Handle_Collision_Enemy( cObjectCollision *collision ) { if( collision->m_direction == DIR_RIGHT || collision->m_direction == DIR_LEFT ) { Turn_Around( collision->m_direction ); } Send_Collision( collision ); }
void cPowerUp::Handle_out_of_Level(ObjectDirection dir) { if (dir == DIR_LEFT) { m_pos_x = pActive_Camera->limit_rect.m_x; } else if (dir == DIR_RIGHT) { m_pos_x = pActive_Camera->limit_rect.m_x + pActive_Camera->limit_rect.m_w - m_col_pos.m_x - m_col_rect.m_w - 0.01f; } Turn_Around(dir); }
void cSpikeball :: Handle_Collision_Player( cObjectCollision *collision ) { // invalid if( collision->m_direction == DIR_UNDEFINED ) { return; } pLevel_Player->DownGrade_Player(); if( collision->m_direction == DIR_RIGHT || collision->m_direction == DIR_LEFT ) { Turn_Around( collision->m_direction ); } }
void cSpikeball :: Handle_Collision_Massive( cObjectCollision *collision ) { if( m_state == STA_OBJ_LINKED ) { return; } Send_Collision( collision ); // get colliding object cSprite *col_object = m_sprite_manager->Get_Pointer( collision->m_number ); if( col_object->m_type == TYPE_BALL ) { return; } if( collision->m_direction == DIR_TOP ) { if( m_vely < 0.0f ) { m_vely = 0.0f; } } else if( collision->m_direction == DIR_BOTTOM ) { if( m_vely > 0.0f ) { m_vely = 0.0f; } } else if( collision->m_direction == DIR_RIGHT || collision->m_direction == DIR_LEFT ) { Turn_Around( collision->m_direction ); } }
void cMushroom::Handle_Collision_Massive(cObjectCollision* collision) { Turn_Around(collision->direction); }