From 55c8a14a7e2b2dadf0def3e09f970818164366f5 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Thu, 18 Jun 2015 12:14:05 -0400 Subject: Now displaying player character --- src/systems/rendering.cpp | 21 +++++++++++++++++++++ src/systems/rendering.h | 16 ++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/systems/rendering.cpp create mode 100644 src/systems/rendering.h (limited to 'src/systems') diff --git a/src/systems/rendering.cpp b/src/systems/rendering.cpp new file mode 100644 index 0000000..0034dc3 --- /dev/null +++ b/src/systems/rendering.cpp @@ -0,0 +1,21 @@ +#include "rendering.h" +#include "entity_manager.h" +#include "components/sprite_renderable.h" +#include "components/transformable.h" + +void RenderingSystem::tick(EntityManager& manager, float dt) +{ + texture.fill(texture.entirety(), 0, 0, 0); + + std::set spriteEntities = manager.getEntitiesWithComponents(); + for (int entity : spriteEntities) + { + auto& sprite = manager.getComponent(entity); + auto& transform = manager.getComponent(entity); + Rectangle dstrect {(int) transform.getX(), (int) transform.getY(), transform.getW(), transform.getH()}; + + texture.blit(sprite.getTexture(), sprite.getFrameRect(), dstrect); + } + + texture.renderScreen(); +} diff --git a/src/systems/rendering.h b/src/systems/rendering.h new file mode 100644 index 0000000..80ea79e --- /dev/null +++ b/src/systems/rendering.h @@ -0,0 +1,16 @@ +#ifndef RENDERING_H_76ABC02A +#define RENDERING_H_76ABC02A + +#include "system.h" +#include "renderer.h" +#include "consts.h" + +class RenderingSystem : public System { + public: + void tick(EntityManager& manager, float dt); + + private: + Texture texture {GAME_WIDTH, GAME_HEIGHT}; +}; + +#endif /* end of include guard: RENDERING_H_76ABC02A */ -- cgit 1.4.1