Merge branch 'master' of github.com:ralucado/WaveGGJ17

This commit is contained in:
Ralusama19 2017-01-21 13:58:50 +01:00
commit ccc203ad9f
7 changed files with 56 additions and 15 deletions

View file

@ -1,8 +1,13 @@
#include "actor.hpp" #include "actor.hpp"
Actor::Actor() {} Actor::Actor() {
score = 0;
animate = PlayerState::attacking;
this->character = new Character(0);
}
Actor::Actor(int num) { Actor::Actor(int num) {
animate = true; score = 0;
animate = PlayerState::attacking;
this->character = new Character(num); this->character = new Character(num);
} }
@ -12,18 +17,30 @@ void Actor::draw(sf::RenderWindow *window) {
bool Actor::update(float deltaTime, sf::RenderWindow *window) { bool Actor::update(float deltaTime, sf::RenderWindow *window) {
character->update(deltaTime); character->update(deltaTime);
if (animate) { if (animate == PlayerState::attacking) {
character->setState(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); return this->updateLogic(deltaTime, window);
} }
void Actor::hitBy(Compas enemy) const { bool Actor::hitBy(Compas enemy) const {
if (enemy == compas) std::cout << "dodge" << std::endl; if (enemy == compas) std::cout << "dodge" << std::endl;
else std::cout << "hit" << std::endl; else std::cout << "hit" << std::endl;
return enemy == compas;
} }
Compas Actor::getAttack() const { Compas Actor::getAttack() const {
return compas; return compas;
} }
void Actor::upScore() {
++score;
}
int Actor::getScore() const {
return score;
}

View file

@ -12,12 +12,15 @@ public:
Actor(int num); Actor(int num);
bool update(float deltaTime, sf::RenderWindow *window); bool update(float deltaTime, sf::RenderWindow *window);
void draw(sf::RenderWindow *window); void draw(sf::RenderWindow *window);
void hitBy(Compas enemy) const; bool hitBy(Compas enemy) const;
Compas getAttack() const; Compas getAttack() const;
virtual bool event(sf::Event e) = 0; virtual bool event(sf::Event e) = 0;
void upScore();
int getScore() const;
protected: protected:
int score;
Compas compas; Compas compas;
bool animate; PlayerState::playerState animate;
virtual bool updateLogic(float deltaTime, sf::RenderWindow *window) = 0; virtual bool updateLogic(float deltaTime, sf::RenderWindow *window) = 0;
private: private:
Character *character; Character *character;

View file

@ -47,7 +47,11 @@ void Combat::updateEvents(sf::Event e) {
if (playerOneTurn) { if (playerOneTurn) {
bool aux = player->event(e); bool aux = player->event(e);
if (!aux) { //end of player one ritm if (!aux) { //end of player one ritm
if (!attacking) player->hitBy(enemy->getAttack()); if (!attacking) {
if(!player->hitBy(enemy->getAttack())) enemy->upScore();
std::cout << "player1: " << player->getScore() << std::endl;
std::cout << "player2: " << enemy->getScore() << std::endl;
}
else playerOneTurn = aux; else playerOneTurn = aux;
attacking = !attacking; attacking = !attacking;
} }
@ -60,7 +64,11 @@ void Combat::updateEvents(sf::Event e) {
void Combat::enemyManager(bool aux) { void Combat::enemyManager(bool aux) {
if (aux) { if (aux) {
if (!attacking) enemy->hitBy(player->getAttack()); if (!attacking) {
if(!enemy->hitBy(player->getAttack())) player->upScore();
std::cout << "player1: " << player->getScore() << std::endl;
std::cout << "player2: " << enemy->getScore() << std::endl;
}
else playerOneTurn = aux; else playerOneTurn = aux;
attacking = !attacking; attacking = !attacking;
} }

View file

@ -41,7 +41,7 @@ namespace GameScene {
} }
namespace PlayerState { namespace PlayerState {
enum playerState{idle, attacking}; enum playerState{idle, attacking, inMidle};
} }
#endif // COMMONS_HPP #endif // COMMONS_HPP

View file

@ -1,6 +1,6 @@
#include "iaenemy.hpp" #include "iaenemy.hpp"
IaEnemy::IaEnemy() : Actor(1) {} IaEnemy::IaEnemy() : Actor() {}
IaEnemy::IaEnemy(int numplayer): Actor(numplayer) {} IaEnemy::IaEnemy(int numplayer): Actor(numplayer) {}
bool IaEnemy::updateLogic(float deltaTime, sf::RenderWindow *window) { bool IaEnemy::updateLogic(float deltaTime, sf::RenderWindow *window) {

View file

@ -2,10 +2,12 @@
Player::Player(int num) : Actor(num) { Player::Player(int num) : Actor(num) {
compas = Compas(); compas = Compas();
error = false;
} }
Player::Player() : Actor(1) { Player::Player() : Actor() {
compas = Compas(); compas = Compas();
error = false;
} }
bool Player::updateLogic(float deltaTime, sf::RenderWindow *window) { bool Player::updateLogic(float deltaTime, sf::RenderWindow *window) {
@ -16,10 +18,19 @@ bool Player::updateLogic(float deltaTime, sf::RenderWindow *window) {
bool Player::event(sf::Event e) { bool Player::event(sf::Event e) {
switch(e.type) { switch(e.type) {
case (sf::Event::KeyPressed): case (sf::Event::KeyPressed):
if(e.key.code == sf::Keyboard::C) compas.start(); if(e.key.code == sf::Keyboard::C) {
compas.start();
error = false;
}
if(e.key.code == sf::Keyboard::Space) { if(e.key.code == sf::Keyboard::Space) {
compas.add(); if (animate == PlayerState::idle && !error) {
if (compas.isPressed() && !animate) animate = true; compas.add();
if (compas.isPressed()) animate = PlayerState::attacking;
}
else {
compas.end();
error = true; //weird?
}
} }
break; break;
case (sf::Event::KeyReleased): case (sf::Event::KeyReleased):

View file

@ -12,6 +12,8 @@ public:
protected: protected:
bool updateLogic(float deltaTime, sf::RenderWindow *window); bool updateLogic(float deltaTime, sf::RenderWindow *window);
private:
bool error;
}; };
#endif // PLAYER_H #endif // PLAYER_H