Changeset 6417 for code/trunk/src/modules/pong/PongAI.cc
- Timestamp:
- Dec 25, 2009, 10:23:58 PM (14 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
-
code/trunk/src/modules/pong/PongAI.cc
r5929 r6417 62 62 { 63 63 for (std::list<std::pair<Timer*, char> >::iterator it = this->reactionTimers_.begin(); it != this->reactionTimers_.end(); ++it) 64 (*it).first->destroy();64 it->first->destroy(); 65 65 } 66 66 … … 131 131 this->bOscillationAvoidanceActive_ = false; 132 132 } 133 133 134 134 // If the ball is close enough, calculate another random offset to accelerate the ball 135 135 if (!this->bChangedRandomOffset_) … … 206 206 // calculate the time until the ball reaches the other side 207 207 float totaltime = (-position.x + dimension.x / 2 * sgn(velocity.x)) / velocity.x; 208 208 209 209 // calculate wall bounce position (four possible solutions of the equation: pos.z + vel.z*t + acc.z/2*t^2 = +/- dim.z/2) 210 210 float bouncetime = totaltime; 211 211 bool bUpperWall = false; 212 212 213 213 if (acceleration.z == 0) 214 214 { … … 270 270 // ball bounces after <bouncetime> seconds, update the position and continue 271 271 velocity.z = velocity.z + acceleration.z * bouncetime; 272 272 273 273 if (bUpperWall) 274 274 { … … 281 281 velocity.z = fabs(velocity.z) - fabs(randomErrorZ); 282 282 } 283 283 284 284 position.x = position.x + velocity.x * bouncetime + randomErrorX; 285 285 this->ballEndPosition_ = position.z;
Note: See TracChangeset
for help on using the changeset viewer.