diff --git a/Resources/Sounds/clicks.wav b/Resources/Sounds/clicks.wav new file mode 100644 index 0000000..8940b06 Binary files /dev/null and b/Resources/Sounds/clicks.wav differ diff --git a/Resources/Sounds/wave.wav b/Resources/Sounds/intro.wav similarity index 100% rename from Resources/Sounds/wave.wav rename to Resources/Sounds/intro.wav diff --git a/VaporWaveWars/actor.cpp b/VaporWaveWars/actor.cpp index 13ef76a..b4f29b7 100644 --- a/VaporWaveWars/actor.cpp +++ b/VaporWaveWars/actor.cpp @@ -19,6 +19,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 b00994d..884cecc 100644 --- a/VaporWaveWars/combat.cpp +++ b/VaporWaveWars/combat.cpp @@ -10,9 +10,9 @@ Combat::Combat() { scorePlayer = new Score(0); scoreEnemy = new Score(1); initShader(); - SoundManager::load(); SoundManager::playMusic("music"); + } Combat::Combat(bool ia) { @@ -37,6 +37,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 e23f46b..24d4555 100644 --- a/VaporWaveWars/commons.hpp +++ b/VaporWaveWars/commons.hpp @@ -12,10 +12,10 @@ #include #include "soundmanager.hpp" const int SCENE_NUM = 4; -#define MARGEERR 0.05f -#define BLACKVALUE 0.60f -#define W_WIDTH 800 -#define W_HEIGHT 600 +#define MARGEERR 0.2f +#define BLACKVALUE 0.6f +#define W_WIDTH 1024 +#define W_HEIGHT 768 const std::string WORK_DIR(getenv("WORK_DIR")); @@ -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/compas.cpp b/VaporWaveWars/compas.cpp index 18a2253..ce941da 100644 --- a/VaporWaveWars/compas.cpp +++ b/VaporWaveWars/compas.cpp @@ -25,10 +25,10 @@ void Compas::add() { void Compas::end() { if (isPress) { isPress = false; -// std::cout << "end" << std::endl; -// for (int i = 0; i < notes.size(); ++i) { -// std::cout << notes[i] << std::endl; -// } + std::cout << "end" << std::endl; + for (int i = 0; i < notes.size(); ++i) { + std::cout << notes[i] << std::endl; + } } } diff --git a/VaporWaveWars/game.cpp b/VaporWaveWars/game.cpp index 3cfb4e8..5c55c67 100644 --- a/VaporWaveWars/game.cpp +++ b/VaporWaveWars/game.cpp @@ -20,7 +20,7 @@ Game* Game::i() { // Main game loop void Game::run() { sf::Clock c; - sf::RenderWindow window(sf::VideoMode(W_WIDTH, W_HEIGHT), "SFML window"); + sf::RenderWindow window(sf::VideoMode(W_WIDTH, W_HEIGHT), "( ( ( Radio Waves ) ) )"); float oldTime = c.getElapsedTime().asSeconds(); while (isRunning) { float time = c.getElapsedTime().asSeconds(); diff --git a/VaporWaveWars/menu.cpp b/VaporWaveWars/menu.cpp index 09fb668..f08a43b 100644 --- a/VaporWaveWars/menu.cpp +++ b/VaporWaveWars/menu.cpp @@ -8,6 +8,7 @@ Menu::Menu() { _exit.turnOn(); _buttons.push_back(&_start); _buttons.push_back(&_exit); + } void Menu::update(float deltaTime, sf::RenderWindow*window){ diff --git a/VaporWaveWars/mygame.cpp b/VaporWaveWars/mygame.cpp index 3608816..7b6a4e1 100644 --- a/VaporWaveWars/mygame.cpp +++ b/VaporWaveWars/mygame.cpp @@ -10,6 +10,8 @@ MyGame::MyGame() { _scenes[GameScene::credits] = _menu; std::cout << "in menu" << std::endl; SoundManager::load(); + SoundManager::setLoop(true, "intro"); + SoundManager::playMusic("intro"); } MyGame::~MyGame() { @@ -24,8 +26,11 @@ void MyGame::changeScene(GameScene::gameScene n){ _scene = n; if(_scenes[_scene] == NULL){ if(_scene == GameScene::inGame){ + SoundManager::stopMusic("intro"); _combat = new Combat; _scenes[_scene] = _combat; + SoundManager::setLoop(true, "clicks"); + SoundManager::playMusic("clicks"); } } } diff --git a/VaporWaveWars/player.cpp b/VaporWaveWars/player.cpp index 5b17cb7..ed296a2 100644 --- a/VaporWaveWars/player.cpp +++ b/VaporWaveWars/player.cpp @@ -3,15 +3,21 @@ Player::Player(int num) : Actor(num) { compas = Compas(); error = false; + time = 0; } Player::Player() : Actor() { compas = Compas(); error = false; + time = 0; } bool Player::updateLogic(float deltaTime, sf::RenderWindow *window) { - if (deltaTime > BLACKVALUE) compas.incraeseTime(); + time += deltaTime; + if (time > BLACKVALUE) { + compas.incraeseTime(); + time = 0; + } return false; } @@ -30,6 +36,8 @@ bool Player::event(sf::Event e) { else { compas.end(); error = true; //weird? + if (animate != PlayerState::inMidle) animate = PlayerState::hurt; + } } break; diff --git a/VaporWaveWars/player.hpp b/VaporWaveWars/player.hpp index c3883aa..3286532 100644 --- a/VaporWaveWars/player.hpp +++ b/VaporWaveWars/player.hpp @@ -13,6 +13,7 @@ protected: bool updateLogic(float deltaTime, sf::RenderWindow *window); private: + float time; bool error; }; diff --git a/VaporWaveWars/soundmanager.cpp b/VaporWaveWars/soundmanager.cpp index 5e0ff9c..c9a61c9 100644 --- a/VaporWaveWars/soundmanager.cpp +++ b/VaporWaveWars/soundmanager.cpp @@ -7,6 +7,8 @@ /* Example: sf::Music SoundManager::overWorldMusic;*/ sf::Music SoundManager::worldMusic; +sf::Music SoundManager::clickTrack; + sf::SoundBuffer SoundManager::atk1; sf::SoundBuffer SoundManager::atk2; sf::SoundBuffer SoundManager::atk3; @@ -39,8 +41,8 @@ void SoundManager::load(){ //LOAD HERE YOUR SOUNDS AND MUSIC /* Example: */ - musicMap["music"].openFromFile(WORK_DIR+"Resources/Sounds/wave.wav"); - + musicMap["intro"].openFromFile(WORK_DIR+"Resources/Sounds/intro.wav"); + musicMap["clicks"].openFromFile(WORK_DIR+"Resources/Sounds/clicks.wav"); ASSERT(atk1.loadFromFile(WORK_DIR+"Resources/Sounds/Samples/1.wav")); soundMap["atk1"].setBuffer(atk1); ASSERT(atk2.loadFromFile(WORK_DIR+"Resources/Sounds/Samples/2.wav")); diff --git a/VaporWaveWars/soundmanager.hpp b/VaporWaveWars/soundmanager.hpp index 8c8a3ac..64492de 100644 --- a/VaporWaveWars/soundmanager.hpp +++ b/VaporWaveWars/soundmanager.hpp @@ -28,6 +28,7 @@ class SoundManager { //INITIALIZE YOUR VARIABLES AS STATIC sf::Music or sf::SoundBuffer /* Example:*/ static sf::Music worldMusic; + static sf::Music clickTrack; static sf::SoundBuffer atk1; static sf::SoundBuffer atk2; static sf::SoundBuffer atk3;