aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics/sprite.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-01-12 21:48:33 +0800
committerchai <chaifix@163.com>2019-01-12 21:48:33 +0800
commit8b00d67febf133e89f6a0bfabc41feed555dc4a9 (patch)
treefe48ef17c250afa40c2588300fcdb5920dba6951 /src/libjin/graphics/sprite.h
parenta907c39756ef6b368d06643afa491c49a9044a8e (diff)
*去掉文件前缀je_
Diffstat (limited to 'src/libjin/graphics/sprite.h')
-rw-r--r--src/libjin/graphics/sprite.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/libjin/graphics/sprite.h b/src/libjin/graphics/sprite.h
new file mode 100644
index 0000000..2acebe0
--- /dev/null
+++ b/src/libjin/graphics/sprite.h
@@ -0,0 +1,55 @@
+#ifndef __JE_SPRITE_H__
+#define __JE_SPRITE_H__
+
+#include "../common/types.h"
+#include "../math/vector2.hpp"
+
+#include "color.h"
+#include "graphic.h"
+#include "renderable.h"
+
+namespace JinEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// A sprite is unit of rendering. Animation is based on sprite, but not texture or other graphic stuff.
+ ///
+ class Sprite : public Object, public Renderable
+ {
+ public:
+
+ Sprite(const Graphic* graphic, const Math::Quad& quad, Origin origin);
+
+ Sprite(const Graphic* graphic, const Math::Quad& quad, float ox, float oy);
+
+ Sprite(const Graphic* graphic, Origin origin);
+
+ Sprite(const Graphic* graphic, float ox, float oy);
+
+ virtual ~Sprite();
+
+ Math::Vector2<int> getSize();
+
+ void render(float x, float y, float sx, float sy, float r) const override;
+
+ private:
+
+ void setOrigin(Origin origin);
+
+ const Math::Vector2<float> mOrigin;
+
+ ///
+ /// Quad of graphic.
+ ///
+ const Math::Quad mQuad;
+
+ const Graphic* mGraphic;
+
+ };
+
+ } // namespace Graphics
+} // namespace JinEngine
+
+#endif \ No newline at end of file