From 611d12bdd245dd43b7434661d3e24f2b435378cb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Nov 2018 21:21:54 +0800 Subject: =?UTF-8?q?*=E6=9B=B4=E6=96=B0=E6=B8=B2=E6=9F=93=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/Graphics/animations/je_animation.h | 7 ++++++- src/libjin/Graphics/je_bitmap.h | 7 +++++++ src/libjin/Graphics/je_mesh.h | 2 +- src/libjin/Graphics/je_sprite.cpp | 20 +++++++++++++++++++- src/libjin/Graphics/je_sprite.h | 13 +++++++++---- src/libjin/Graphics/je_sprite_batch.cpp | 11 +++++++++++ src/libjin/Graphics/je_sprite_batch.h | 7 +++++-- 7 files changed, 58 insertions(+), 9 deletions(-) (limited to 'src/libjin/Graphics') diff --git a/src/libjin/Graphics/animations/je_animation.h b/src/libjin/Graphics/animations/je_animation.h index 05e1d4f..9926cf9 100644 --- a/src/libjin/Graphics/animations/je_animation.h +++ b/src/libjin/Graphics/animations/je_animation.h @@ -30,7 +30,12 @@ namespace JinEngine /// /// Get current frame index. /// - uint getCurrentFrame(); + uint getCurrentFrameIndex(); + + /// + /// + /// + Sprite* getCurrentFrame(); /// /// Set current frame index. diff --git a/src/libjin/Graphics/je_bitmap.h b/src/libjin/Graphics/je_bitmap.h index b0b7dad..c3041f8 100644 --- a/src/libjin/Graphics/je_bitmap.h +++ b/src/libjin/Graphics/je_bitmap.h @@ -3,6 +3,8 @@ #include "../core/je_configuration.h" #if defined(jin_graphics) +#include + #include "GLee/GLee.h" #include "../common/je_types.h" @@ -62,6 +64,11 @@ namespace JinEngine /// static Bitmap* createBitmap(int width, int height, Color color = Color::BLACK); + /// + /// Create bitmap and set bitmap pixels with given drawer. + /// + static Bitmap* createBitmap(int width, int height, std::function drawer); + /// /// Create bitmap with another one. /// diff --git a/src/libjin/Graphics/je_mesh.h b/src/libjin/Graphics/je_mesh.h index f5680ee..dbb2881 100644 --- a/src/libjin/Graphics/je_mesh.h +++ b/src/libjin/Graphics/je_mesh.h @@ -7,7 +7,7 @@ namespace JinEngine { /// - /// + /// A 2D mesh. /// class Mesh { diff --git a/src/libjin/Graphics/je_sprite.cpp b/src/libjin/Graphics/je_sprite.cpp index 176447c..810cb0e 100644 --- a/src/libjin/Graphics/je_sprite.cpp +++ b/src/libjin/Graphics/je_sprite.cpp @@ -93,7 +93,7 @@ namespace JinEngine mIsOriginEnum = false; } - void Sprite::setPosition(int x, int y) + void Sprite::setPosition(float x, float y) { mPosition.set(x, y); } @@ -121,6 +121,24 @@ namespace JinEngine setQuad(0, 0, w, h); } + + void Sprite::move(float x, float y) + { + mPosition.x += x; + mPosition.y += y; + } + + void Sprite::rotate(float r) + { + mRotation += r; + } + + void Sprite::scale(float sx, float sy) + { + mScale.x += sx; + mScale.y += sy; + } + void Sprite::render() { Shader* shader = Shader::getCurrentShader(); diff --git a/src/libjin/Graphics/je_sprite.h b/src/libjin/Graphics/je_sprite.h index ad95aa4..d48fbbc 100644 --- a/src/libjin/Graphics/je_sprite.h +++ b/src/libjin/Graphics/je_sprite.h @@ -38,12 +38,16 @@ namespace JinEngine void setRotation(float r); void setOrigin(Origin origin); void setOrigin(int x, int y); - void setPosition(int x, int y); - void setScale(float x, float y); + void setPosition(float x, float y); + void setScale(float sx, float sy); void setColor(Color color); void setShader(Shaders::Shader* shader); void setGraphic(const Graphic* graphic); + void move(float x, float y); + void rotate(float r); + void scale(float sx, float sy); + float getRotation() { return mRotation; } Math::Vector2 getSize() { return Math::Vector2(mQuad.w, mQuad.h); } const Math::Quad& getQuad() { return mQuad; } @@ -64,13 +68,14 @@ namespace JinEngine Math::Vector2 mPosition; Math::Vector2 mOrigin; Math::Vector2 mScale; + float mRotation; + Color mColor; + Math::Quad mQuad; bool mIsOriginEnum; Origin mOriginEnum; - float mRotation; - Color mColor; Shaders::Shader* mShader; const Graphic* mGraphic; diff --git a/src/libjin/Graphics/je_sprite_batch.cpp b/src/libjin/Graphics/je_sprite_batch.cpp index e69de29..f339715 100644 --- a/src/libjin/Graphics/je_sprite_batch.cpp +++ b/src/libjin/Graphics/je_sprite_batch.cpp @@ -0,0 +1,11 @@ +#include "je_sprite_batch.h" + +namespace JinEngine +{ + namespace Graphics + { + + + + } +} \ No newline at end of file diff --git a/src/libjin/Graphics/je_sprite_batch.h b/src/libjin/Graphics/je_sprite_batch.h index 7c1098b..64f9805 100644 --- a/src/libjin/Graphics/je_sprite_batch.h +++ b/src/libjin/Graphics/je_sprite_batch.h @@ -8,10 +8,13 @@ namespace JinEngine class SpriteBatch { + public: + + private: }; - } -} + } // namespace Graphics +} // namespace JinEngine #endif \ No newline at end of file -- cgit v1.1-26-g67d0