// ----------------------------------------------------------------------------- void Plunger::update(float dt) { // In keep-alive mode, just update the rubber band if(m_keep_alive >= 0) { m_keep_alive -= dt; if(m_keep_alive<=0) { setHasHit(); projectile_manager->notifyRemove(); } if(m_rubber_band != NULL) m_rubber_band->update(dt); return; } // Else: update the flyable and rubber band Flyable::update(dt); if(m_rubber_band != NULL) m_rubber_band->update(dt); if(getHoT()==Track::NOHIT) return; } // update
/** Updates the bowling ball ineach frame. If this function returns true, the * object will be removed by the projectile manager. * \param dt Time step size. * \returns True of this object should be removed. */ bool Plunger::updateAndDelete(float dt) { // In keep-alive mode, just update the rubber band if(m_keep_alive >= 0) { m_keep_alive -= dt; if(m_keep_alive<=0) { setHasHit(); return true; } if(m_rubber_band != NULL) m_rubber_band->update(dt); return false; } // Else: update the flyable and rubber band bool ret = Flyable::updateAndDelete(dt); if(m_rubber_band != NULL) m_rubber_band->update(dt); return ret; } // updateAndDelete