summary refs log tree commit diff stats
path: root/src/sprite.h
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-03 01:35:58 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-03 01:35:58 -0500
commitbe09120d1d044b476ef8b516efbdb526f20d9e2d (patch)
treef935389835d5f94a9cd3bb2059cf55174c9aad69 /src/sprite.h
parent24918837c3ff9026d228657d14852c9cf39a5644 (diff)
downloadtanetane-be09120d1d044b476ef8b516efbdb526f20d9e2d.tar.gz
tanetane-be09120d1d044b476ef8b516efbdb526f20d9e2d.tar.bz2
tanetane-be09120d1d044b476ef8b516efbdb526f20d9e2d.zip
Added animation system
Diffstat (limited to 'src/sprite.h')
-rw-r--r--src/sprite.h46
1 files changed, 13 insertions, 33 deletions
diff --git a/src/sprite.h b/src/sprite.h index dc26fad..e842192 100644 --- a/src/sprite.h +++ b/src/sprite.h
@@ -17,39 +17,19 @@ struct SpriteFrame {
17class Sprite { 17class Sprite {
18public: 18public:
19 19
20 Sprite(std::string_view filename, Renderer& renderer); 20 // Transform
21 21 vec2i loc { 0, 0 };
22 int getTextureId() const { 22
23 return textureId_; 23 // Animation
24 } 24 bool isAnimated = false;
25 25 int textureId;
26 const vec2i& loc() const { return loc_; } 26 Direction dir = Direction::down;
27 27 std::string animationName;
28 vec2i& loc() { return loc_; } 28 int animationId = 0;
29 29 int animationFrame = 0;
30 const SpriteFrame& getFrame() const { return frames_.at(animations_[curAnim_][curFrame_]); } 30 std::vector<SpriteFrame> frames;
31 31 std::vector<std::vector<int>> animations;
32 void setDirection(Direction dir); 32 std::map<std::string, std::map<Direction, int>> nameDirToAnim;
33
34 Direction getDirection() const { return curDir_; }
35
36 void setState(std::string state);
37
38 void tickAnim();
39
40private:
41
42 void updateAnimation();
43
44 int textureId_;
45 vec2i loc_ { 0, 0 };
46 Direction curDir_ = Direction::down;
47 std::string state_;
48 int curAnim_ = 0;
49 int curFrame_ = 0;
50 std::vector<SpriteFrame> frames_;
51 std::vector<std::vector<int>> animations_;
52 std::map<std::string, std::map<Direction, int>> stateDirToAnim_;
53}; 33};
54 34
55#endif /* end of include guard: SPRITE_H_70503825 */ 35#endif /* end of include guard: SPRITE_H_70503825 */