From 7322a090355af1989d7a1de0de431b6c89844fe2 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 25 Oct 2018 08:18:13 +0800 Subject: =?UTF-8?q?*=E5=A2=9E=E5=8A=A0lua=E5=AF=BC=E5=87=BA=E5=AE=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/Game/je_entity.h | 8 ++- src/libjin/Game/je_game_object.cpp | 11 --- src/libjin/Game/je_game_object.h | 86 ----------------------- src/libjin/Game/je_gameobject.cpp | 11 +++ src/libjin/Game/je_gameobject.h | 86 +++++++++++++++++++++++ src/libjin/Graphics/je_graphic_single.cpp | 31 ++++---- src/libjin/Graphics/je_graphic_single.h | 2 +- src/libjin/Graphics/particle/je_particle_system.h | 2 +- 8 files changed, 120 insertions(+), 117 deletions(-) delete mode 100644 src/libjin/Game/je_game_object.cpp delete mode 100644 src/libjin/Game/je_game_object.h create mode 100644 src/libjin/Game/je_gameobject.cpp create mode 100644 src/libjin/Game/je_gameobject.h (limited to 'src/libjin') diff --git a/src/libjin/Game/je_entity.h b/src/libjin/Game/je_entity.h index cf4eeb0..92976b4 100644 --- a/src/libjin/Game/je_entity.h +++ b/src/libjin/Game/je_entity.h @@ -1,7 +1,7 @@ #ifndef __JE_ENTITY_H #define __JE_ENTITY_H -#include "je_game_object.h" +#include "je_gameobject.h" namespace JinEngine { @@ -14,12 +14,14 @@ namespace JinEngine class Entity : public GameObject { public: + Entity(); private: + }; - } -} + } // namespace Game +} // namespace JinEngine #endif \ No newline at end of file diff --git a/src/libjin/Game/je_game_object.cpp b/src/libjin/Game/je_game_object.cpp deleted file mode 100644 index 1396518..0000000 --- a/src/libjin/Game/je_game_object.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "je_entity.h" - -namespace JinEngine -{ - namespace Game - { - - - - } // namespace Game -} // namespace JinEngine \ No newline at end of file diff --git a/src/libjin/Game/je_game_object.h b/src/libjin/Game/je_game_object.h deleted file mode 100644 index 08a103f..0000000 --- a/src/libjin/Game/je_game_object.h +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef __JE_GAME_OBJECT_H -#define __JE_GAME_OBJECT_H - -#include "../core/je_configuration.h" -#if defined(jin_game) - -#include -#include -#include - -#include "../common/je_object.h" -#include "../common/je_types.h" -#include "../graphics/je_sprite.h" - -namespace JinEngine -{ - namespace Game - { - - /// - /// Game object base class. - /// - class GameObject : public Object - { - public: - - /// - /// - /// - virtual ~GameObject(); - - /// - /// - /// - void lifecycle(); - - /// - /// - /// - void setVisible(bool isVisible); - - /// - /// - /// - void setActive(bool isActive); - - /// - /// - /// - void setOrder(uint32 order); - - protected: - virtual void onAlive(); - virtual void onUpdate(float dt); - virtual void onDraw(); - virtual void onDestroy(); - - uint32 mLayer; // layer where entity belongs - uint32 mOrder; // render index in layer - uint32 mTag; // tag of entity, support 32 tags now - bool mIsVisible; // if the entity is visible or not - bool mIsActive; // if the entity is joined into the logic - - /// - /// Position of entity. - /// - Math::Vector2 mPosition; - - }; - - /// - /// Entity list. For quickly adding and removing entities. - /// - typedef std::list EntityList; - - /// - /// Entity set. For searching and keeps entities unique and sorted. - /// - typedef std::set EntitySet; - - } // namespace Game -} // namespace JinEngine - -#endif // jin_game - -#endif \ No newline at end of file diff --git a/src/libjin/Game/je_gameobject.cpp b/src/libjin/Game/je_gameobject.cpp new file mode 100644 index 0000000..1396518 --- /dev/null +++ b/src/libjin/Game/je_gameobject.cpp @@ -0,0 +1,11 @@ +#include "je_entity.h" + +namespace JinEngine +{ + namespace Game + { + + + + } // namespace Game +} // namespace JinEngine \ No newline at end of file diff --git a/src/libjin/Game/je_gameobject.h b/src/libjin/Game/je_gameobject.h new file mode 100644 index 0000000..08a103f --- /dev/null +++ b/src/libjin/Game/je_gameobject.h @@ -0,0 +1,86 @@ +#ifndef __JE_GAME_OBJECT_H +#define __JE_GAME_OBJECT_H + +#include "../core/je_configuration.h" +#if defined(jin_game) + +#include +#include +#include + +#include "../common/je_object.h" +#include "../common/je_types.h" +#include "../graphics/je_sprite.h" + +namespace JinEngine +{ + namespace Game + { + + /// + /// Game object base class. + /// + class GameObject : public Object + { + public: + + /// + /// + /// + virtual ~GameObject(); + + /// + /// + /// + void lifecycle(); + + /// + /// + /// + void setVisible(bool isVisible); + + /// + /// + /// + void setActive(bool isActive); + + /// + /// + /// + void setOrder(uint32 order); + + protected: + virtual void onAlive(); + virtual void onUpdate(float dt); + virtual void onDraw(); + virtual void onDestroy(); + + uint32 mLayer; // layer where entity belongs + uint32 mOrder; // render index in layer + uint32 mTag; // tag of entity, support 32 tags now + bool mIsVisible; // if the entity is visible or not + bool mIsActive; // if the entity is joined into the logic + + /// + /// Position of entity. + /// + Math::Vector2 mPosition; + + }; + + /// + /// Entity list. For quickly adding and removing entities. + /// + typedef std::list EntityList; + + /// + /// Entity set. For searching and keeps entities unique and sorted. + /// + typedef std::set EntitySet; + + } // namespace Game +} // namespace JinEngine + +#endif // jin_game + +#endif \ No newline at end of file diff --git a/src/libjin/Graphics/je_graphic_single.cpp b/src/libjin/Graphics/je_graphic_single.cpp index 0784409..96eb1af 100644 --- a/src/libjin/Graphics/je_graphic_single.cpp +++ b/src/libjin/Graphics/je_graphic_single.cpp @@ -47,30 +47,31 @@ namespace JinEngine void GraphicSingle::render(const Math::Quad& slice, int x, int y, float sx, float sy, float r, float ax, float ay) { - float vertCoords[8] = { - 0, 0, - 0, slice.h, - slice.w, slice.h, - slice.w, 0 - }; + static float vertexCoords[8]; + static float textureCoords[8]; + + // Set vertex coordinates. + vertexCoords[0] = 0; vertexCoords[1] = 0; + vertexCoords[2] = 0; vertexCoords[3] = slice.h; + vertexCoords[4] = slice.w; vertexCoords[5] = slice.h; + vertexCoords[6] = slice.w; vertexCoords[7] = 0; + // Set texture coordinates. float slx = slice.x / mSize.w; float sly = slice.y / mSize.h; float slw = slice.w / mSize.w; float slh = slice.h / mSize.h; - float texCoords[8] = { - slx, sly, - slx, sly + slh, - slx + slw, sly + slh, - slx + slw, sly - }; + textureCoords[0] = slx; textureCoords[1] = sly; + textureCoords[2] = slx; textureCoords[3] = sly + slh; + textureCoords[4] = slx + slw; textureCoords[5] = sly + slh; + textureCoords[6] = slx + slw; textureCoords[7] = sly; gl.ModelMatrix.setTransformation(x, y, r, sx, sy, ax, ay); Shader* shader = Shader::getCurrentShader(); shader->sendMatrix4(SHADER_MODEL_MATRIX, &gl.ModelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); - shader->bindVertexPointer(2, GL_FLOAT, 0, vertCoords); - shader->bindUVPointer(2, GL_FLOAT, 0, texCoords); + shader->bindVertexPointer(2, GL_FLOAT, 0, vertexCoords); + shader->bindUVPointer(2, GL_FLOAT, 0, textureCoords); gl.bindTexture(getGLTexture()); gl.drawArrays(GL_QUADS, 0, 4); @@ -78,4 +79,4 @@ namespace JinEngine } } // namespace Graphics -} // namespace JinEngine \ No newline at end of file +} // namespace JinEngine \ No newline at end of file diff --git a/src/libjin/Graphics/je_graphic_single.h b/src/libjin/Graphics/je_graphic_single.h index ca2864b..f61234b 100644 --- a/src/libjin/Graphics/je_graphic_single.h +++ b/src/libjin/Graphics/je_graphic_single.h @@ -50,4 +50,4 @@ namespace JinEngine } // namespace Graphics } // namespace JinEngine -#endif \ No newline at end of file +#endif \ No newline at end of file diff --git a/src/libjin/Graphics/particle/je_particle_system.h b/src/libjin/Graphics/particle/je_particle_system.h index 270d9a8..8526da8 100644 --- a/src/libjin/Graphics/particle/je_particle_system.h +++ b/src/libjin/Graphics/particle/je_particle_system.h @@ -4,7 +4,7 @@ #include #include "../../common/je_temporary.h" -#include "../../game/je_game_object.h" +#include "../../game/je_gameobject.h" #include "../je_sprite.h" -- cgit v1.1-26-g67d0