Example #1
0
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);
	}
}
Example #2
0
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())));
}