//players setters void Game::makeMove(const int player, const Move& mv) { if(mv.advanceStraight) move(player); if (mv.shoot) shoot(player); if (mv.turnLeft) turnLeft(player); if (mv.turnRight) turnRight(player); changeFov(player, mv.fovMult); }
// Increment/decrement smoothly the vision field and position void StelMovementMgr::updateMotion(double deltaTime) { updateVisionVector(deltaTime); const StelProjectorP proj = core->getProjection(StelCore::FrameJ2000); // the more it is zoomed, the lower the moving speed is (in angle) double depl=keyMoveSpeed*deltaTime*1000*currentFov; double deplzoom=keyZoomSpeed*deltaTime*1000*proj->deltaZoom(currentFov*(M_PI/360.0))*(360.0/M_PI); if (flagMoveSlow) { depl *= 0.2; deplzoom *= 0.2; } if (deltaAz<0) { deltaAz = -depl/30; if (deltaAz<-0.2) deltaAz = -0.2; } else if (deltaAz>0) { deltaAz = (depl/30); if (deltaAz>0.2) deltaAz = 0.2; } if (deltaAlt<0) { deltaAlt = -depl/30; if (deltaAlt<-0.2) deltaAlt = -0.2; } else if (deltaAlt>0) { deltaAlt = depl/30; if (deltaAlt>0.2) deltaAlt = 0.2; } if (deltaFov<0) { deltaFov = -deplzoom*5; if (deltaFov<-0.15*currentFov) deltaFov = -0.15*currentFov; } else if (deltaFov>0) { deltaFov = deplzoom*5; if (deltaFov>20) deltaFov = 20; } if (deltaFov != 0 ) { changeFov(deltaFov); } panView(deltaAz, deltaAlt); updateAutoZoom(deltaTime); }