Game Development Reference
In-Depth Information
tankStatsForLocal.tankDestination.x)>kTankSpeed) ||
(fabs(tankStatsForLocal.tankPosition.y -
tankStatsForLocal.tankDestination.y)>kTankSpeed) ) {
// check facing
float ad = tankStatsForLocal.tankDirection -
tankStatsForLocal.tankRotation;
if(fabs(ad) > kTankTurnSpeed) {
// we need to turn, work out which way
(find the closest 180)
while(ad > M_PI) {
ad -= (2.0 * M_PI);
}
while(ad < -M_PI) {
ad += (2.0 * M_PI);
}
if(ad < 0) {
tankStatsForLocal.tankRotation -=
kTankTurnSpeed;
if(tankStatsForLocal.tankRotation < 0)
tankStatsForLocal.tankRotation +=
(2.0*M_PI);
} else if(ad > 0) {
tankStatsForLocal.tankRotation +=
kTankTurnSpeed;
if(tankStatsForLocal.tankRotation >
(2.0*M_PI))
tankStatsForLocal.tankRotation -= (2.0*M_PI);
}
} else {
tankStatsForLocal.tankRotation =
tankStatsForLocal.tankDirection;
// if facing move along line towards
destination
Search WWH ::




Custom Search