diff --git a/VaporWaveWars/actor.cpp b/VaporWaveWars/actor.cpp index 5a3b5bc..939d73a 100644 --- a/VaporWaveWars/actor.cpp +++ b/VaporWaveWars/actor.cpp @@ -2,7 +2,7 @@ Actor::Actor() {} Actor::Actor(int num) { - animate = true; + animate = PlayerState::attacking; this->character = new Character(num); } @@ -12,9 +12,12 @@ void Actor::draw(sf::RenderWindow *window) { bool Actor::update(float deltaTime, sf::RenderWindow *window) { character->update(deltaTime); - if (animate) { + if (animate == PlayerState::attacking) { character->setState(PlayerState::attacking); - animate = false; + animate = PlayerState::inMidle; + } + else if (animate == PlayerState::inMidle) { + if (character->isLastFrame()) animate = PlayerState::idle; } return this->updateLogic(deltaTime, window); } diff --git a/VaporWaveWars/actor.hpp b/VaporWaveWars/actor.hpp index f876f70..2edee17 100644 --- a/VaporWaveWars/actor.hpp +++ b/VaporWaveWars/actor.hpp @@ -17,7 +17,7 @@ public: virtual bool event(sf::Event e) = 0; protected: Compas compas; - bool animate; + PlayerState::playerState animate; virtual bool updateLogic(float deltaTime, sf::RenderWindow *window) = 0; private: Character *character; diff --git a/VaporWaveWars/commons.hpp b/VaporWaveWars/commons.hpp index 77f8c44..b1b56b2 100644 --- a/VaporWaveWars/commons.hpp +++ b/VaporWaveWars/commons.hpp @@ -41,7 +41,7 @@ namespace GameScene { } namespace PlayerState { - enum playerState{idle, attacking}; + enum playerState{idle, attacking, inMidle}; } #endif // COMMONS_HPP diff --git a/VaporWaveWars/player.cpp b/VaporWaveWars/player.cpp index d1c8520..10a63d4 100644 --- a/VaporWaveWars/player.cpp +++ b/VaporWaveWars/player.cpp @@ -18,8 +18,10 @@ bool Player::event(sf::Event e) { case (sf::Event::KeyPressed): if(e.key.code == sf::Keyboard::C) compas.start(); if(e.key.code == sf::Keyboard::Space) { - compas.add(); - if (compas.isPressed() && !animate) animate = true; + if (compas.isPressed() && animate == PlayerState::idle) { + compas.add(); + animate = PlayerState::attacking; + } } break; case (sf::Event::KeyReleased):