diff options
Diffstat (limited to 'src/systems/rendering.cpp')
-rw-r--r-- | src/systems/rendering.cpp | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/src/systems/rendering.cpp b/src/systems/rendering.cpp index 251c2bc..8219732 100644 --- a/src/systems/rendering.cpp +++ b/src/systems/rendering.cpp | |||
@@ -3,19 +3,35 @@ | |||
3 | #include "components/animatable.h" | 3 | #include "components/animatable.h" |
4 | #include "components/transformable.h" | 4 | #include "components/transformable.h" |
5 | 5 | ||
6 | void RenderingSystem::tick(double dt) | 6 | void RenderingSystem::tick(double) |
7 | { | 7 | { |
8 | texture.fill(texture.entirety(), 0, 0, 0); | 8 | texture_.fill(texture_.entirety(), 0, 0, 0); |
9 | 9 | ||
10 | std::set<int> spriteEntities = game.getEntityManager().getEntitiesWithComponents<AnimatableComponent, TransformableComponent>(); | 10 | std::set<id_type> spriteEntities = |
11 | for (int entity : spriteEntities) | 11 | game_.getEntityManager().getEntitiesWithComponents< |
12 | AnimatableComponent, | ||
13 | TransformableComponent>(); | ||
14 | |||
15 | for (id_type entity : spriteEntities) | ||
12 | { | 16 | { |
13 | auto& sprite = game.getEntityManager().getComponent<AnimatableComponent>(entity); | 17 | auto& sprite = game_.getEntityManager(). |
14 | auto& transform = game.getEntityManager().getComponent<TransformableComponent>(entity); | 18 | getComponent<AnimatableComponent>(entity); |
15 | Rectangle dstrect {(int) transform.getX(), (int) transform.getY(), transform.getW(), transform.getH()}; | 19 | |
16 | 20 | auto& transform = game_.getEntityManager(). | |
17 | texture.blit(sprite.getTexture(), sprite.getFrameRect(), dstrect); | 21 | getComponent<TransformableComponent>(entity); |
22 | |||
23 | Rectangle dstrect { | ||
24 | static_cast<int>(transform.getX()), | ||
25 | static_cast<int>(transform.getY()), | ||
26 | transform.getW(), | ||
27 | transform.getH()}; | ||
28 | |||
29 | const AnimationSet& aset = sprite.getAnimationSet(); | ||
30 | texture_.blit( | ||
31 | aset.getTexture(), | ||
32 | aset.getFrameRect(sprite.getFrame()), | ||
33 | dstrect); | ||
18 | } | 34 | } |
19 | 35 | ||
20 | texture.renderScreen(); | 36 | texture_.renderScreen(); |
21 | } | 37 | } |