From 2a8724cb7eb5ebcb7a5ca4c41e5f7400bb58e721 Mon Sep 17 00:00:00 2001 From: Ralusama19 Date: Sat, 21 Jan 2017 16:29:21 +0100 Subject: [PATCH] added death animation --- VaporWaveWars/actor.cpp | 4 ++++ VaporWaveWars/character.cpp | 9 ++++++++- VaporWaveWars/combat.cpp | 1 + VaporWaveWars/commons.hpp | 2 +- VaporWaveWars/player.cpp | 2 ++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/VaporWaveWars/actor.cpp b/VaporWaveWars/actor.cpp index cbd6f6d..51c3f85 100644 --- a/VaporWaveWars/actor.cpp +++ b/VaporWaveWars/actor.cpp @@ -21,6 +21,10 @@ bool Actor::update(float deltaTime, sf::RenderWindow *window) { character->setState(PlayerState::attacking); animate = PlayerState::inMidle; } + else if (animate == PlayerState::hurt) { + character->setState(PlayerState::hurt); + animate = PlayerState::inMidle; + } else if (animate == PlayerState::inMidle) { if (character->isLastFrame()) animate = PlayerState::idle; } diff --git a/VaporWaveWars/character.cpp b/VaporWaveWars/character.cpp index 0cbfbe5..4ff62ab 100644 --- a/VaporWaveWars/character.cpp +++ b/VaporWaveWars/character.cpp @@ -39,6 +39,12 @@ void Character::update(float deltaTime){ setState(PlayerState::idle); } + //Acabar automaticament la animacio de hurt + if (actualState == PlayerState::hurt and indexX%4 == 3){ + setState(PlayerState::idle); + } + + idleFrame = (idleFrame+1)%4; } } @@ -56,7 +62,8 @@ void Character::setState(PlayerState::playerState state){ SoundManager::playSound(sample); std::cout << "playing sample " << sample << std::endl; } - else if (false /*state == PlayerState::damaged*/){ + else if (state == PlayerState::hurt){ + std::cout << "i am hurt" << std::endl; indexX = 0; indexY = 2 + magicNumber; } diff --git a/VaporWaveWars/combat.cpp b/VaporWaveWars/combat.cpp index 48f2489..ea4e0f6 100644 --- a/VaporWaveWars/combat.cpp +++ b/VaporWaveWars/combat.cpp @@ -33,6 +33,7 @@ void Combat::update(float deltaTime, sf::RenderWindow *window) { bool aux = enemy->update(deltaTime, window); if (ia) enemyManager(aux); //end of player two ia ritm time += deltaTime; + _shader.setParameter("time", time); } diff --git a/VaporWaveWars/commons.hpp b/VaporWaveWars/commons.hpp index f80accd..dbc1953 100644 --- a/VaporWaveWars/commons.hpp +++ b/VaporWaveWars/commons.hpp @@ -42,7 +42,7 @@ enum gameScene{menu,inGame,help,credits}; } namespace PlayerState { -enum playerState{idle, attacking, inMidle}; +enum playerState{idle, attacking, inMidle, hurt}; } #endif // COMMONS_HPP diff --git a/VaporWaveWars/player.cpp b/VaporWaveWars/player.cpp index 5b17cb7..8d7ba3a 100644 --- a/VaporWaveWars/player.cpp +++ b/VaporWaveWars/player.cpp @@ -30,6 +30,8 @@ bool Player::event(sf::Event e) { else { compas.end(); error = true; //weird? + if (animate != PlayerState::inMidle) animate = PlayerState::hurt; + } } break;