void PlayerTurret::update(const float& dt, const Vector2& parentPosition, BulletSystem& system, const bool& didFire) { this->parentPosition = parentPosition; if (cool > 0) { cool -= dt; } rotateTurret(); if (didFire && cool <= 0) { fire(dt, system, parentPosition); } }
void CtrlPanel::step(float dt) { fps.setString("FPS : " + std::to_string(fpsi)); auto pl = _game.getCurrPlayer(); if(pl == nullptr) return; if(_game.isPlayerTurn()) currPlayerMarker->step(dt); if(p != _game.getPlayerIndex()+1) { p = _game.getPlayerIndex()+1; gaugeFill.setSize(sf::Vector2f(pl->getPower()*gaugeBg.getSize().x,gaugeBg.getSize().y)); player.setString("Player : " + std::to_string(p)); } if(settingAngle || settingPower) { sf::Vector2i mouse = sf::Mouse::getPosition(Application::getWindow()); int delta = mouse.x-prevMouseX; if(settingAngle) pl->rotateTurret( delta/2 ); else changePower( delta/2,pl ); prevMouseX = mouse.x; int mouse_margin = 20; if(mouse.x < mouse_margin) //workaround for mouse lock { sf::Mouse::setPosition(sf::Vector2i(constants::windowWidth-mouse_margin-1,mouse.y),Application::getWindow()); prevMouseX = constants::windowWidth-mouse_margin-1; } else if(mouse.x > constants::windowWidth-mouse_margin-1) { sf::Mouse::setPosition(sf::Vector2i(mouse_margin,mouse.y),Application::getWindow()); prevMouseX = mouse_margin; } if(mouse.y < mouse_margin) { sf::Mouse::setPosition(sf::Vector2i(mouse.x,constants::windowHeight-mouse_margin-1),Application::getWindow()); } else if(mouse.y > constants::windowHeight-mouse_margin) { sf::Mouse::setPosition(sf::Vector2i(mouse.x,mouse_margin),Application::getWindow()); } } rotation.setString("Rotation : " + std::to_string(360-int(pl->getTurretAngle()))); }