- Timestamp:
- Dec 9, 2010, 12:45:33 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.cc
r7547 r7751 57 57 this->engine_ = 0; 58 58 59 this->boostPower_ = 10.0f; 60 this->initialBoostPower_ = 10.0f; 61 this->boostRate_ = 5.0; 62 this->boostPowerRate_ = 1.0; 63 this->boostCooldownDuration_ = 5.0; 64 this->bBoostCooldown_ = false; 59 65 60 66 this->bInvertYAxis_ = false; … … 86 92 XMLPortParamVariable(SpaceShip, "auxilaryThrust", auxilaryThrust_, xmlelement, mode); 87 93 XMLPortParamVariable(SpaceShip, "rotationThrust", rotationThrust_, xmlelement, mode); 94 XMLPortParamVariable(SpaceShip, "boostPower", initialBoostPower_, xmlelement, mode); 95 XMLPortParamVariable(SpaceShip, "boostPowerRate", boostPowerRate_, xmlelement, mode); 96 XMLPortParamVariable(SpaceShip, "boostRate", boostRate_, xmlelement, mode); 97 XMLPortParamVariable(SpaceShip, "boostCooldownDuration", boostCooldownDuration_, xmlelement, mode); 88 98 } 89 99 … … 134 144 this->localAngularAcceleration_.setValue(0, 0, 0); 135 145 } 136 } 146 147 if(!this->bBoostCooldown_ && this->boostPower_ < this->initialBoostPower_) 148 { 149 this->boostPower_ += this->boostPowerRate_*dt; 150 } 151 if(this->bBoost_) 152 { 153 this->boostPower_ -=this->boostRate_*dt; 154 if(this->boostPower_ <= 0.0f) 155 { 156 this->bBoost_ = false; 157 this->bBoostCooldown_ = true; 158 this->timer_.setTimer(this->boostCooldownDuration_, false, createExecutor(createFunctor(&SpaceShip::boostCooledDown, this))); 159 } 160 } 161 } 162 } 163 164 void SpaceShip::boostCooledDown(void) 165 { 166 this->bBoostCooldown_ = false; 137 167 } 138 168 … … 175 205 Pawn::rotateRoll(value); 176 206 } 207 208 // TODO: something seems to call this function every tick, could probably handled a little more efficiently! 209 void SpaceShip::setBoost(bool bBoost) 210 { 211 if(bBoost == this->bBoost_) 212 return; 213 214 if(bBoost) 215 this->boost(); 216 else 217 { 218 this->bBoost_ = false; 219 } 220 } 177 221 178 222 void SpaceShip::fire() … … 182 226 void SpaceShip::boost() 183 227 { 184 this->bBoost_ = true; 228 if(!this->bBoostCooldown_) 229 this->bBoost_ = true; 185 230 } 186 231
Note: See TracChangeset
for help on using the changeset viewer.