From 879c2c04d9c3879f871cfe79f9b25fd23c5184b4 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Thu, 11 Jun 2015 11:38:49 -0400 Subject: Wrote EntityManager --- src/components/ai.cpp | 142 ---------------------- src/components/ai.h | 73 ----------- src/components/map_collision.cpp | 241 ------------------------------------- src/components/map_collision.h | 47 -------- src/components/map_render.cpp | 40 ------ src/components/map_render.h | 19 --- src/components/physics_body.cpp | 66 ---------- src/components/physics_body.h | 20 --- src/components/player_physics.cpp | 118 ------------------ src/components/player_physics.h | 25 ---- src/components/player_sprite.cpp | 60 --------- src/components/player_sprite.h | 23 ---- src/components/simple_collider.cpp | 14 --- src/components/simple_collider.h | 18 --- src/components/static_image.cpp | 11 -- src/components/static_image.h | 18 --- src/components/user_movement.cpp | 100 --------------- src/components/user_movement.h | 19 --- 18 files changed, 1054 deletions(-) delete mode 100644 src/components/ai.cpp delete mode 100644 src/components/ai.h delete mode 100644 src/components/map_collision.cpp delete mode 100644 src/components/map_collision.h delete mode 100644 src/components/map_render.cpp delete mode 100644 src/components/map_render.h delete mode 100644 src/components/physics_body.cpp delete mode 100644 src/components/physics_body.h delete mode 100644 src/components/player_physics.cpp delete mode 100644 src/components/player_physics.h delete mode 100644 src/components/player_sprite.cpp delete mode 100644 src/components/player_sprite.h delete mode 100644 src/components/simple_collider.cpp delete mode 100644 src/components/simple_collider.h delete mode 100644 src/components/static_image.cpp delete mode 100644 src/components/static_image.h delete mode 100644 src/components/user_movement.cpp delete mode 100644 src/components/user_movement.h (limited to 'src/components') diff --git a/src/components/ai.cpp b/src/components/ai.cpp deleted file mode 100644 index 9f8c764..0000000 --- a/src/components/ai.cpp +++ /dev/null @@ -1,142 +0,0 @@ -#include "ai.h" -#include -#include "entity.h" - -void AIActionContainer::addAction(std::shared_ptr action) -{ - actions.push_back(action); -} - -void AIActionContainer::start(Game& game, Entity& entity) -{ - currentAction = begin(actions); - - if (currentAction != end(actions)) - { - (*currentAction)->start(game, entity); - } -} - -void AIActionContainer::perform(Game& game, Entity& entity, double dt) -{ - if (!isDone()) - { - (*currentAction)->perform(game, entity, dt); - - if ((*currentAction)->isDone()) - { - currentAction++; - - if (!isDone()) - { - (*currentAction)->start(game, entity); - } - } - } -} - -bool AIActionContainer::isDone() const -{ - return currentAction == end(actions); -} - -AI::AI(int chance) -{ - this->chance = chance; -} - -int AI::getChance() const -{ - return chance; -} - -AI& AIComponent::emplaceAI(int chance) -{ - maxChance += chance; - ais.emplace_back(chance); - - return ais.back(); -} - -void AIComponent::tick(Game& game, Entity& entity, double dt) -{ - if (currentAI == nullptr) - { - int toChoose = rand() % maxChance; - for (auto& ai : ais) - { - if (toChoose < ai.getChance()) - { - currentAI = &ai; - break; - } else { - toChoose -= ai.getChance(); - } - } - - if (currentAI != nullptr) - { - currentAI->start(game, entity); - } - } - - if (currentAI != nullptr) - { - currentAI->perform(game, entity, dt); - - if (currentAI->isDone()) - { - currentAI = nullptr; - } - } -} - -MoveAIAction::MoveAIAction(Direction dir, int len, int speed) -{ - this->dir = dir; - this->len = len; - this->speed = speed; -} - -void MoveAIAction::start(Game& game, Entity& entity) -{ - remaining = len; -} - -void MoveAIAction::perform(Game&, Entity& entity, double dt) -{ - double dist = dt * speed; - remaining -= dist; - - switch (dir) - { - case Direction::Left: - { - entity.position.first -= dist; - break; - } - - case Direction::Right: - { - entity.position.first += dist; - break; - } - - case Direction::Up: - { - entity.position.second -= dist; - break; - } - - case Direction::Down: - { - entity.position.second += dist; - break; - } - } -} - -bool MoveAIAction::isDone() const -{ - return remaining <= 0.0; -} diff --git a/src/components/ai.h b/src/components/ai.h deleted file mode 100644 index 840283b..0000000 --- a/src/components/ai.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef AI_H -#define AI_H - -#include -#include -#include -#include - -#include "entity.h" - -class AIAction { - public: - virtual void start(Game& game, Entity& entity) = 0; - virtual void perform(Game& game, Entity& entity, double dt) = 0; - virtual bool isDone() const = 0; -}; - -class AIActionContainer { - public: - void addAction(std::shared_ptr action); - virtual void start(Game& game, Entity& entity); - virtual void perform(Game& game, Entity& entity, double dt); - virtual bool isDone() const; - - private: - std::list> actions; - std::list>::iterator currentAction {end(actions)}; -}; - -class AI : public AIActionContainer { - public: - AI(int chance); - - int getChance() const; - - private: - int chance; -}; - -class AIComponent : public Component { - public: - AI& emplaceAI(int chance); - void tick(Game& game, Entity& entity, double dt); - - private: - int maxChance = 0; - std::list ais; - AI* currentAI = nullptr; -}; - -class MoveAIAction : public AIAction { - public: - enum class Direction { - Left, - Right, - Up, - Down - }; - - MoveAIAction(Direction dir, int len, int speed); - - void start(Game& game, Entity& entity); - void perform(Game& game, Entity& entity, double dt); - bool isDone() const; - - private: - Direction dir; - int len; - int speed; - double remaining; -}; - -#endif /* end of include guard: AI_H */ diff --git a/src/components/map_collision.cpp b/src/components/map_collision.cpp deleted file mode 100644 index 3ad574b..0000000 --- a/src/components/map_collision.cpp +++ /dev/null @@ -1,241 +0,0 @@ -#include "map_collision.h" -#include "map.h" -#include "game.h" -#include "consts.h" - -MapCollisionComponent::MapCollisionComponent(const Map& map) : map(map) -{ - addCollision(-6, 0, MAP_HEIGHT*TILE_HEIGHT, Direction::left, collisionFromMoveType(map.getAdjacent(Map::MoveDir::Left).type)); - addCollision(GAME_WIDTH+6, 0, MAP_HEIGHT*TILE_HEIGHT, Direction::right, collisionFromMoveType(map.getAdjacent(Map::MoveDir::Right).type)); - addCollision(-6, 0, GAME_WIDTH, Direction::up, collisionFromMoveType(map.getAdjacent(Map::MoveDir::Up).type)); - addCollision(MAP_HEIGHT*TILE_HEIGHT+6, 0, GAME_WIDTH, Direction::down, collisionFromMoveType(map.getAdjacent(Map::MoveDir::Down).type)); - - for (int i=0; i 0) && (tile < 28) && (!((tile >= 5) && (tile <= 7)))) - { - addCollision(x*TILE_WIDTH, y*TILE_HEIGHT, (y+1)*TILE_HEIGHT, Direction::right, Collision::Type::wall); - addCollision((x+1)*TILE_WIDTH, y*TILE_HEIGHT, (y+1)*TILE_HEIGHT, Direction::left, Collision::Type::wall); - addCollision(y*TILE_HEIGHT, x*TILE_WIDTH, (x+1)*TILE_WIDTH, Direction::down, Collision::Type::wall); - addCollision((y+1)*TILE_HEIGHT, x*TILE_WIDTH, (x+1)*TILE_WIDTH, Direction::up, Collision::Type::wall); - } else if ((tile >= 5) && (tile <= 7)) - { - addCollision(y*TILE_HEIGHT, x*TILE_WIDTH, (x+1)*TILE_WIDTH, Direction::down, Collision::Type::platform); - } else if (tile == 42) - { - addCollision(y*TILE_HEIGHT, x*TILE_WIDTH, (x+1)*TILE_WIDTH, Direction::down, Collision::Type::danger); - } - } -} - -void MapCollisionComponent::addCollision(double axis, double lower, double - upper, Direction dir, Collision::Type type) -{ - std::list::iterator it; - - switch (dir) - { - case Direction::up: - it = up_collisions.begin(); - for (; it!=up_collisions.end(); it++) - { - if (it->axis < axis) break; - } - - up_collisions.insert(it, {axis, lower, upper, type}); - - break; - case Direction::down: - it = down_collisions.begin(); - for (; it!=down_collisions.end(); it++) - { - if (it->axis > axis) break; - } - - down_collisions.insert(it, {axis, lower, upper, type}); - - break; - case Direction::left: - it = left_collisions.begin(); - for (; it!=left_collisions.end(); it++) - { - if (it->axis < axis) break; - } - - left_collisions.insert(it, {axis, lower, upper, type}); - - break; - case Direction::right: - it = right_collisions.begin(); - for (; it!=right_collisions.end(); it++) - { - if (it->axis > axis) break; - } - - right_collisions.insert(it, {axis, lower, upper, type}); - - break; - } -} - -void MapCollisionComponent::detectCollision(Game& game, Entity&, Entity& collider, std::pair old_position) -{ - if (collider.position.first < old_position.first) - { - for (auto collision : left_collisions) - { - if (collision.axis > old_position.first) continue; - if (collision.axis < collider.position.first) break; - - if ((old_position.second+collider.size.second > collision.lower) && (old_position.second < collision.upper)) - { - // We have a collision! - processCollision(game, collider, collision, Direction::left, old_position); - - break; - } - } - } else if (collider.position.first > old_position.first) - { - for (auto collision : right_collisions) - { - if (collision.axis < old_position.first+collider.size.first) continue; - if (collision.axis > collider.position.first+collider.size.first) break; - - if ((old_position.second+collider.size.second > collision.lower) && (old_position.second < collision.upper)) - { - // We have a collision! - processCollision(game, collider, collision, Direction::right, old_position); - - break; - } - } - } - - if (collider.position.second < old_position.second) - { - for (auto collision : up_collisions) - { - if (collision.axis > old_position.second) continue; - if (collision.axis < collider.position.second) break; - - if ((collider.position.first+collider.size.first > collision.lower) && (collider.position.first < collision.upper)) - { - // We have a collision! - processCollision(game, collider, collision, Direction::up, old_position); - - break; - } - } - } else if (collider.position.second > old_position.second) - { - for (auto collision : down_collisions) - { - if (collision.axis < old_position.second+collider.size.second) continue; - if (collision.axis > collider.position.second+collider.size.second) break; - - if ((collider.position.first+collider.size.first > collision.lower) && (collider.position.first < collision.upper)) - { - // We have a collision! - processCollision(game, collider, collision, Direction::down, old_position); - - break; - } - } - } -} - -void MapCollisionComponent::processCollision(Game& game, Entity& collider, Collision collision, Direction dir, std::pair old_position) -{ - if (collision.type == Collision::Type::wall) - { - if (dir == Direction::left) - { - collider.position.first = collision.axis; - - Message msg(Message::Type::setHorizontalVelocity); - msg.velocity = 0.0; - collider.send(game, msg); - } else if (dir == Direction::right) - { - collider.position.first = collision.axis - collider.size.first; - - Message msg(Message::Type::setHorizontalVelocity); - msg.velocity = 0.0; - collider.send(game, msg); - } else if (dir == Direction::up) - { - collider.position.second = collision.axis; - - Message msg(Message::Type::setVerticalVelocity); - msg.velocity = 0.0; - collider.send(game, msg); - } else if (dir == Direction::down) - { - collider.position.second = collision.axis - collider.size.second; - collider.send(game, Message::Type::hitTheGround); - } - } else if (collision.type == Collision::Type::wrap) - { - if (dir == Direction::left) - { - collider.position.first = GAME_WIDTH-collider.size.first/2; - } else if (dir == Direction::right) - { - collider.position.first = -collider.size.first/2; - } else if (dir == Direction::up) - { - collider.position.second = GAME_HEIGHT-collider.size.second/2-1; - } else if (dir == Direction::down) - { - collider.position.second = -collider.size.second/2; - } - } else if (collision.type == Collision::Type::teleport) - { - if (dir == Direction::left) - { - game.loadMap(game.getWorld().getMap(map.getAdjacent(Map::MoveDir::Left).map), std::make_pair(GAME_WIDTH-collider.size.first/2, old_position.second)); - } else if (dir == Direction::right) - { - game.loadMap(game.getWorld().getMap(map.getAdjacent(Map::MoveDir::Right).map), std::make_pair(-collider.size.first/2, old_position.second)); - } else if (dir == Direction::up) - { - game.loadMap(game.getWorld().getMap(map.getAdjacent(Map::MoveDir::Up).map), std::make_pair(old_position.first, MAP_HEIGHT*TILE_HEIGHT-collider.size.second/2)); - } else if (dir == Direction::down) - { - game.loadMap(game.getWorld().getMap(map.getAdjacent(Map::MoveDir::Down).map), std::make_pair(old_position.first, -collider.size.second/2)); - } - } else if (collision.type == Collision::Type::reverse) - { - // TODO reverse - if (dir == Direction::right) - { - collider.position.first = collision.axis - collider.size.first; - collider.send(game, Message::Type::walkLeft); - } - } else if (collision.type == Collision::Type::platform) - { - Message msg(Message::Type::drop); - msg.dropAxis = collision.axis; - - collider.send(game, msg); - } else if (collision.type == Collision::Type::danger) - { - game.playerDie(); - } -} - -MapCollisionComponent::Collision::Type MapCollisionComponent::collisionFromMoveType(Map::MoveType type) -{ - switch (type) - { - case Map::MoveType::Wall: return Collision::Type::wall; - case Map::MoveType::Wrap: return Collision::Type::wrap; - case Map::MoveType::Warp: return Collision::Type::teleport; - case Map::MoveType::ReverseWarp: return Collision::Type::reverse; - } -} diff --git a/src/components/map_collision.h b/src/components/map_collision.h deleted file mode 100644 index 18b9397..0000000 --- a/src/components/map_collision.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef MAP_COLLISION_H -#define MAP_COLLISION_H - -#include "entity.h" -#include "map.h" -#include - -class Game; - -class MapCollisionComponent : public Component { - public: - MapCollisionComponent(const Map& map); - void detectCollision(Game& game, Entity& entity, Entity& collider, std::pair old_position); - - private: - enum class Direction { - up, left, down, right - }; - - struct Collision { - enum class Type { - wall, - wrap, - teleport, - reverse, - platform, - danger - }; - - double axis; - double lower; - double upper; - Type type; - }; - - void addCollision(double axis, double lower, double upper, Direction dir, Collision::Type type); - void processCollision(Game& game, Entity& collider, Collision collision, Direction dir, std::pair old_position); - Collision::Type collisionFromMoveType(Map::MoveType type); - - std::list left_collisions; - std::list right_collisions; - std::list up_collisions; - std::list down_collisions; - const Map& map; -}; - -#endif diff --git a/src/components/map_render.cpp b/src/components/map_render.cpp deleted file mode 100644 index 45766e1..0000000 --- a/src/components/map_render.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "map_render.h" -#include "map.h" -#include "game.h" -#include "consts.h" - -MapRenderComponent::MapRenderComponent(const Map& map) : screen(GAME_WIDTH, GAME_HEIGHT) -{ - screen.fill(screen.entirety(), 0, 0, 0); - - Texture tiles("res/tiles.png"); - - for (int i=0; i 0) - { - screen.blit(tiles, src, dst); - } - } - - Texture font("res/font.bmp"); - std::string map_name = map.getTitle(); - int start_x = (40/2) - (map_name.length()/2); - for (size_t i=0; i TERMINAL_VELOCITY_X) velocity.first = TERMINAL_VELOCITY_X; - if (velocity.second < -TERMINAL_VELOCITY_Y) velocity.second = -TERMINAL_VELOCITY_Y; - if (velocity.second > TERMINAL_VELOCITY_Y) velocity.second = TERMINAL_VELOCITY_Y; - - // Do the movement - entity.position.first += velocity.first * dt; - entity.position.second += velocity.second * dt; -} - -void PhysicsBodyComponent::detectCollision(Game& game, Entity& entity, Entity& collider, std::pair old_position) -{ - // If already colliding, do nothing! - if ((old_position.first + collider.size.first > entity.position.first) - && (old_position.first < entity.position.first + entity.size.first) - && (old_position.second + collider.size.second > entity.position.second) - && (old_position.second < entity.position.second + entity.size.second)) - { - return; - } - - // If newly colliding, SHOCK AND HORROR! - if ((collider.position.first + collider.size.first > entity.position.first) - && (collider.position.first < entity.position.first + entity.size.first) - && (collider.position.second + collider.size.second > entity.position.second) - && (collider.position.second < entity.position.second + entity.size.second)) - { - Message msg(Message::Type::collision); - msg.collisionEntity = &collider; - - entity.send(game, msg); - } -} diff --git a/src/components/physics_body.h b/src/components/physics_body.h deleted file mode 100644 index 079cc51..0000000 --- a/src/components/physics_body.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef PHYSICS_BODY_H -#define PHYSICS_BODY_H - -#include "entity.h" -#include - -class Game; - -class PhysicsBodyComponent : public Component { - public: - void receive(Game& game, Entity& entity, const Message& msg); - void tick(Game& game, Entity& entity, double dt); - void detectCollision(Game& game, Entity& entity, Entity& collider, std::pair old_position); - - protected: - std::pair velocity; - std::pair accel; -}; - -#endif diff --git a/src/components/player_physics.cpp b/src/components/player_physics.cpp deleted file mode 100644 index 40e9948..0000000 --- a/src/components/player_physics.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "player_physics.h" -#include "muxer.h" -#include "game.h" -#include "consts.h" - -#define JUMP_VELOCITY(h, l) (-2 * (h) / (l)) -#define JUMP_GRAVITY(h, l) (2 * ((h) / (l)) / (l)) - -PlayerPhysicsComponent::PlayerPhysicsComponent() -{ - jump_velocity = JUMP_VELOCITY(TILE_HEIGHT*4.5, 0.3); - jump_gravity = JUMP_GRAVITY(TILE_HEIGHT*4.5, 0.3); - jump_gravity_short = JUMP_GRAVITY(TILE_HEIGHT*3.5, 0.233); - - accel.second = jump_gravity_short; -} - -void PlayerPhysicsComponent::receive(Game&, Entity& entity, const Message& msg) -{ - if (msg.type == Message::Type::walkLeft) - { - velocity.first = -90; - direction = -1; - } else if (msg.type == Message::Type::walkRight) - { - velocity.first = 90; - direction = 1; - } else if (msg.type == Message::Type::stopWalking) - { - velocity.first = 0.0; - direction = 0; - } else if (msg.type == Message::Type::setHorizontalVelocity) - { - velocity.first = msg.velocity; - } else if (msg.type == Message::Type::setVerticalVelocity) - { - velocity.second = msg.velocity; - } else if (msg.type == Message::Type::hitTheGround) - { - if (isFalling) - { - playSound("res/Randomize27.wav", 0.05); - isFalling = false; - } - - velocity.second = 0.0; - } else if (msg.type == Message::Type::jump) - { - playSound("res/Randomize87.wav", 0.25); - - velocity.second = jump_velocity; - accel.second = jump_gravity; - } else if (msg.type == Message::Type::stopJump) - { - accel.second = jump_gravity_short; - } else if (msg.type == Message::Type::canDrop) - { - canDrop = true; - } else if (msg.type == Message::Type::cantDrop) - { - canDrop = false; - } else if (msg.type == Message::Type::drop) - { - if (canDrop) - { - canDrop = false; - } else { - entity.position.second = msg.dropAxis - entity.size.second; - velocity.second = 0; - } - } else if (msg.type == Message::Type::die) - { - frozen = true; - } else if (msg.type == Message::Type::stopDying) - { - frozen = false; - } -} - -void PlayerPhysicsComponent::tick(Game& game, Entity& entity, double dt) -{ - // If frozen, do nothing - if (frozen) - { - return; - } - - // Continue walking even if blocked earlier - if (velocity.first == 0) - { - if (direction < 0) - { - velocity.first = -90; - } else if (direction > 0) - { - velocity.first = 90; - } - } - - // Increase gravity at the height of jump - if ((accel.second == jump_gravity) && (velocity.second >= 0)) - { - accel.second = jump_gravity_short; - } - - // Do the movement - std::pair old_position = entity.position; - PhysicsBodyComponent::tick(game, entity, dt); - - // Check for collisions - game.detectCollision(entity, old_position); - - // Are we moving due to gravity? - if (velocity.second != 0.0) - { - isFalling = true; - } -} diff --git a/src/components/player_physics.h b/src/components/player_physics.h deleted file mode 100644 index 26f1fae..0000000 --- a/src/components/player_physics.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PLAYER_PHYSICS_H -#define PLAYER_PHYSICS_H - -#include "entity.h" -#include "physics_body.h" - -class Game; - -class PlayerPhysicsComponent : public PhysicsBodyComponent { - public: - PlayerPhysicsComponent(); - void tick(Game& game, Entity& entity, double dt); - void receive(Game& game, Entity& entity, const Message& msg); - - private: - double jump_velocity; - double jump_gravity; - double jump_gravity_short; - int direction = 0; - bool canDrop = false; - bool frozen = false; - bool isFalling = false; -}; - -#endif diff --git a/src/components/player_sprite.cpp b/src/components/player_sprite.cpp deleted file mode 100644 index 452a940..0000000 --- a/src/components/player_sprite.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "player_sprite.h" - -PlayerSpriteComponent::PlayerSpriteComponent() : sprite("res/Starla.png") -{ - -} - -void PlayerSpriteComponent::render(Game&, Entity& entity, Texture& buffer) -{ - animFrame++; - - int frame = 0; - if (isMoving) - { - frame += 2; - - if (animFrame % 20 < 10) - { - frame += 2; - } - } - - if (facingLeft) - { - frame++; - } - - double alpha = 1.0; - if (dying && (animFrame % 4 < 2)) - { - alpha = 0.0; - } - - Rectangle src_rect {frame*10, 0, 10, 12}; - Rectangle dst_rect {(int) entity.position.first, (int) entity.position.second, entity.size.first, entity.size.second}; - buffer.blit(sprite, src_rect, dst_rect, alpha); -} - -void PlayerSpriteComponent::receive(Game&, Entity&, const Message& msg) -{ - if (msg.type == Message::Type::walkLeft) - { - facingLeft = true; - isMoving = true; - } else if (msg.type == Message::Type::walkRight) - { - facingLeft = false; - isMoving = true; - } else if (msg.type == Message::Type::stopWalking) - { - isMoving = false; - } else if (msg.type == Message::Type::die) - { - dying = true; - isMoving = false; - } else if (msg.type == Message::Type::stopDying) - { - dying = false; - } -} diff --git a/src/components/player_sprite.h b/src/components/player_sprite.h deleted file mode 100644 index b1ac0af..0000000 --- a/src/components/player_sprite.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PLAYER_SPRITE_H -#define PLAYER_SPRITE_H - -#include "entity.h" -#include "renderer.h" - -class Game; - -class PlayerSpriteComponent : public Component { - public: - PlayerSpriteComponent(); - void render(Game& game, Entity& entity, Texture& buffer); - void receive(Game& game, Entity& entity, const Message& msg); - - private: - Texture sprite; - int animFrame = 0; - bool facingLeft = false; - bool isMoving = false; - bool dying = false; -}; - -#endif diff --git a/src/components/simple_collider.cpp b/src/components/simple_collider.cpp deleted file mode 100644 index f4b414e..0000000 --- a/src/components/simple_collider.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "simple_collider.h" - -SimpleColliderComponent::SimpleColliderComponent(std::function callback) : callback(callback) -{ - -} - -void SimpleColliderComponent::receive(Game& game, Entity&, const Message& msg) -{ - if (msg.type == Message::Type::collision) - { - callback(game, *msg.collisionEntity); - } -} diff --git a/src/components/simple_collider.h b/src/components/simple_collider.h deleted file mode 100644 index 15d78cf..0000000 --- a/src/components/simple_collider.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SIMPLE_COLLIDER_H -#define SIMPLE_COLLIDER_H - -#include "entity.h" -#include - -class Game; - -class SimpleColliderComponent : public Component { - public: - SimpleColliderComponent(std::function callback); - void receive(Game& game, Entity& entity, const Message& msg); - - private: - std::function callback; -}; - -#endif diff --git a/src/components/static_image.cpp b/src/components/static_image.cpp deleted file mode 100644 index 9fa8dca..0000000 --- a/src/components/static_image.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "static_image.h" - -StaticImageComponent::StaticImageComponent(const char* filename) : sprite(Texture(filename)) -{ - -} - -void StaticImageComponent::render(Game&, Entity& entity, Texture& buffer) -{ - buffer.blit(sprite, sprite.entirety(), {(int) entity.position.first, (int) entity.position.second, entity.size.first, entity.size.second}); -} diff --git a/src/components/static_image.h b/src/components/static_image.h deleted file mode 100644 index 2dec78b..0000000 --- a/src/components/static_image.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef STATIC_IMAGE_H -#define STATIC_IMAGE_H - -#include "entity.h" -#include "renderer.h" - -class Game; - -class StaticImageComponent : public Component { - public: - StaticImageComponent(const char* filename); - void render(Game& game, Entity& entity, Texture& buffer); - - private: - Texture sprite; -}; - -#endif diff --git a/src/components/user_movement.cpp b/src/components/user_movement.cpp deleted file mode 100644 index e499fee..0000000 --- a/src/components/user_movement.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#include "user_movement.h" -#include "renderer.h" - -void UserMovementComponent::input(Game& game, Entity& entity, int key, int action) -{ - if (action == GLFW_PRESS) - { - if (key == GLFW_KEY_LEFT) - { - holdingLeft = true; - - if (!frozen) - { - entity.send(game, Message::Type::walkLeft); - } - } else if (key == GLFW_KEY_RIGHT) - { - holdingRight = true; - - if (!frozen) - { - entity.send(game, Message::Type::walkRight); - } - } else if (key == GLFW_KEY_UP) - { - if (!frozen) - { - entity.send(game, Message::Type::jump); - } - } else if (key == GLFW_KEY_DOWN) - { - if (!frozen) - { - entity.send(game, Message::Type::canDrop); - } - } - } else if (action == GLFW_RELEASE) - { - if (key == GLFW_KEY_LEFT) - { - holdingLeft = false; - - if (!frozen) - { - if (holdingRight) - { - entity.send(game, Message::Type::walkRight); - } else { - entity.send(game, Message::Type::stopWalking); - } - } - } else if (key == GLFW_KEY_RIGHT) - { - holdingRight = false; - - if (!frozen) - { - if (holdingLeft) - { - entity.send(game, Message::Type::walkLeft); - } else { - entity.send(game, Message::Type::stopWalking); - } - } - } else if (key == GLFW_KEY_DOWN) - { - if (!frozen) - { - entity.send(game, Message::Type::cantDrop); - } - } else if (key == GLFW_KEY_UP) - { - if (!frozen) - { - entity.send(game, Message::Type::stopJump); - } - } - } -} - -void UserMovementComponent::receive(Game& game, Entity& entity, const Message& msg) -{ - if (msg.type == Message::Type::die) - { - frozen = true; - - entity.send(game, Message::Type::stopWalking); - } else if (msg.type == Message::Type::stopDying) - { - frozen = false; - - if (holdingLeft) - { - entity.send(game, Message::Type::walkLeft); - } else if (holdingRight) - { - entity.send(game, Message::Type::walkRight); - } - } -} diff --git a/src/components/user_movement.h b/src/components/user_movement.h deleted file mode 100644 index 1bcf05e..0000000 --- a/src/components/user_movement.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef USER_MOVEMENT_H -#define USER_MOVEMENT_H - -#include "entity.h" - -class Game; - -class UserMovementComponent : public Component { - public: - void input(Game& game, Entity& entity, int key, int action); - void receive(Game&, Entity&, const Message& msg); - - private: - bool holdingLeft = false; - bool holdingRight = false; - bool frozen = false; -}; - -#endif -- cgit 1.4.1