Example #1
0
void Gun::onFixedUpdate(sf::Time dt)
{
    // Decrement Cooldown
    if (mCooldownCounter > 0.0f)
    {
        mCooldownCounter -= dt.asSeconds();
        if (mCooldownCounter < 0.0f)
        {
            mCooldownCounter = 0.0f;
        }
    }

    // Check if gun is firinga and ready to fire.
    if (mFiring && mCooldownCounter == 0.0f)
    {
        // If gun is bursty
        if (mBurst)
        {
            // then fire the gun multiple times.
            for (unsigned i = 0; i < mBurstAmount; i++)
            {
                fireGun();
            }
        }
        // Else just fire once.
        else
        {
            fireGun();
        }
    }
}
	void BobShooter::execute()
	{
		if (firing)
		{
			fireGun();
		}
	}
Example #3
0
        PlayerController::PlayerController(AttackingEntityPtr player, View::AbstractView* view) :
            m_player(player)
        {
            // Add the player to the view
            view->addEntity(player);

            // Request a signal when a key is pressed
            view->addObserver([this](const Event&){ m_moveLeftKeyDown = false; }, Event::Type::MoveLeftKeyReleased);
            view->addObserver([this](const Event&){ m_moveLeftKeyDown = true; }, Event::Type::MoveLeftKeyPressed);
            view->addObserver([this](const Event&){ m_moveRightKeyDown = false; }, Event::Type::MoveRightKeyReleased);
            view->addObserver([this](const Event&){ m_moveRightKeyDown = true; }, Event::Type::MoveRightKeyPressed);
            view->addObserver([this](const Event&){ m_fireKeyDown = false; }, Event::Type::FireKeyReleased);
            view->addObserver([this](const Event&){ m_fireKeyDown = true; fireGun(); }, Event::Type::FireKeyPressed);
        }
Example #4
0
        void PlayerController::update(const sf::Time& elapsedTime)
        {
            // Move the player to the left if needed
            if (m_moveLeftKeyDown)
            {
                m_player->setPosition(Vector2f{m_player->getPosition().x - (m_player->getSpeed() * elapsedTime.asSeconds()), m_player->getPosition().y});

                if (m_player->getPosition().x < 0)
                    m_player->setPosition(Vector2f{0, m_player->getPosition().y});
            }

            // Move the player to the right if needed
            if (m_moveRightKeyDown)
            {
                m_player->setPosition(Vector2f{m_player->getPosition().x + (m_player->getSpeed() * elapsedTime.asSeconds()), m_player->getPosition().y});

                if (m_player->getPosition().x + m_player->getSize().x > SCREEN_WIDTH)
                    m_player->setPosition(Vector2f{SCREEN_WIDTH - m_player->getSize().x, m_player->getPosition().y});
            }

            // Fire the gun if needed
            if (m_fireKeyDown)
                fireGun();
        }