From 91e589d1678a8187c307e09b98b67ec4133092ff Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 19 Jan 2019 01:44:05 +0800 Subject: =?UTF-8?q?*=E6=B8=B8=E6=88=8F=E6=A1=86=E6=9E=B6=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/Asura.Engine/GameObject.h | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Source/Asura.Engine/GameObject.h (limited to 'Source/Asura.Engine/GameObject.h') diff --git a/Source/Asura.Engine/GameObject.h b/Source/Asura.Engine/GameObject.h new file mode 100644 index 0000000..85dc87f --- /dev/null +++ b/Source/Asura.Engine/GameObject.h @@ -0,0 +1,56 @@ +#ifndef __AE_GAMEOBJECT_H__ +#define __AE_GAMEOBJECT_H__ + +#include "./Containers/Vector.hpp" +#include "./Math/Vector2.h" + +#include "Object.h" +#include "Component.h" +#include "Transform.h" +#include "Manager.hpp" + +namespace AsuraEngine +{ + + /// + /// 游戏实体,由引擎管理。 + /// + class GameObject final : public Object + { + public: + + // 场景的回调函数 + + void OnEnable(); + void OnEvent(); + void OnUpdate(uint32 milliseconds); + void OnRender(); + void OnDisable(); + + // 设置transform,组件可以通过下列函数修改GameObject的位置、缩放和旋转 + + const Transform& GetTransform(); + const Math::Vector2& GetPosition(); + const Math::Vector2& GetScale(); + const Math::Vector2& GetRotation(); + void SetTransform(const Transform& transform); + void SetPosition(const Math::Vector2& position); + void SetScale(const Math::Vector2& scale); + void SetRotation(const Math::Vector2& rotation); + + template + inline T GetComponent() + { + return NULL; + } + + private: + + Transform mTransform; + Containers::Vector mComponents; + + }; + +} + +#endif \ No newline at end of file -- cgit v1.1-26-g67d0