summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/Asura.Framework/Class.lua17
-rw-r--r--Source/Asura.Framework/Component.lua6
-rw-r--r--Source/Asura.Framework/Filesystem/scene_loader.lua2
-rw-r--r--Source/Asura.Framework/Graphics/Animator.lua16
-rw-r--r--Source/Asura.Framework/Graphics/Camera.lua8
-rw-r--r--Source/Asura.Framework/Graphics/particle_system.lua4
-rw-r--r--Source/Asura.Framework/Scene.lua8
-rw-r--r--Source/Asura.Framework/Transform.lua11
-rw-r--r--Source/Asura.Framework/class.lua17
-rw-r--r--Source/Asura.Framework/component.lua6
-rw-r--r--Source/Asura.Framework/filesystem/entity_loader.lua2
-rw-r--r--Source/Asura.Framework/filesystem/scene_loader.lua2
-rw-r--r--Source/Asura.Framework/gameobject.lua (renamed from Source/Asura.Framework/entity.lua)49
-rw-r--r--Source/Asura.Framework/graphics/animator.lua16
-rw-r--r--Source/Asura.Framework/graphics/camera.lua8
-rw-r--r--Source/Asura.Framework/graphics/canvas.lua18
-rw-r--r--Source/Asura.Framework/graphics/particle_system.lua4
-rw-r--r--Source/Asura.Framework/managers/scene_manager.lua16
-rw-r--r--Source/Asura.Framework/managers/sprite_manager.lua0
-rw-r--r--Source/Asura.Framework/scene.lua8
-rw-r--r--Source/Asura.Framework/transform.lua11
21 files changed, 135 insertions, 94 deletions
diff --git a/Source/Asura.Framework/Class.lua b/Source/Asura.Framework/Class.lua
index ee30c8d..94dc491 100644
--- a/Source/Asura.Framework/Class.lua
+++ b/Source/Asura.Framework/Class.lua
@@ -1,16 +1,19 @@
AsuraEngine.Class = {}
+
local Class = AsuraEngine.Class
Class.__index = Class
-function AsuraEngine.Class.Sub(cname)
- local c = {}
- c.class = cname
- setmetatable(c, Class)
+function Class.Sub(base, classname)
+ local subclass = {}
+ base.__index = base
+ setmetatable(subclass, base)
return c
end
-function AsuraEngine.Class.New(self)
+--实例化
+function Class.New(cls)
local obj = {}
- setmetatable(obj, self)
- self.__index = self
+ setmetatable(obj, cls)
+ cls.__index = cls
end
+
diff --git a/Source/Asura.Framework/Component.lua b/Source/Asura.Framework/Component.lua
index a31b31c..289dc8e 100644
--- a/Source/Asura.Framework/Component.lua
+++ b/Source/Asura.Framework/Component.lua
@@ -3,15 +3,15 @@ AsuraEngine.Component = AsuraEngine.Class("Component")
local Component = AsuraEngine.Component
-- Component要显示在inspector的变量
-Component.mEntity = AsuraEngine.Type.GameObject
+Component.gameobject = AsuraEngine.Type.GameObject
function Component.Sub(cname)
assert(Component.components[cname] == nil)
end
-function Component:Ctor(go)
- self.mEntity = go
+function Component:Ctor(gameobject)
+ self.gameobject = gameobject
end
function Component:OnEvent(e)
diff --git a/Source/Asura.Framework/Filesystem/scene_loader.lua b/Source/Asura.Framework/Filesystem/scene_loader.lua
index 3284c57..c0a951f 100644
--- a/Source/Asura.Framework/Filesystem/scene_loader.lua
+++ b/Source/Asura.Framework/Filesystem/scene_loader.lua
@@ -1,3 +1,5 @@
+local Scene = require "scene"
+
local loader = AsuraEngine.Loader.New("scene")
function loader.Load(asset)
diff --git a/Source/Asura.Framework/Graphics/Animator.lua b/Source/Asura.Framework/Graphics/Animator.lua
index 7cc18a1..02f67ff 100644
--- a/Source/Asura.Framework/Graphics/Animator.lua
+++ b/Source/Asura.Framework/Graphics/Animator.lua
@@ -3,21 +3,21 @@ AsuraEngine.Animator = AsuraEngine.Component.Sub("Animator")
local Animator = AsuraEngine.Animator
-- Animator inspector variables.
-Animator.mSpriteRenderer = AsuraEngine.Type.SpriteRenderer
-Animator.mAnimation = AsuraEngine.Type.Animation
+Animator.spriteRenderer = AsuraEngine.Type.SpriteRenderer
+Animator.animation = AsuraEngine.Type.Animation
-function Animator:Ctor(entity, animation)
- self.base(entity)
- self.mSpriteRenderer = entity:GetSpriteRenderer()
- self.mAnimation = animation
+function Animator:Ctor(gameobject, animation)
+ self.base(gameobject)
+ self.spriteRenderer = gameobject:GetSpriteRenderer()
+ self.animation = animation
end
function Animator:SetAnimation(animation)
- self.mAnimation = animation
+ self.animation = animation
end
function Animator:GetAnimation()
- return self.mAnimation
+ return self.animation
end
function Animator:OnUpdate(dt)
diff --git a/Source/Asura.Framework/Graphics/Camera.lua b/Source/Asura.Framework/Graphics/Camera.lua
index 039de1a..c8176f8 100644
--- a/Source/Asura.Framework/Graphics/Camera.lua
+++ b/Source/Asura.Framework/Graphics/Camera.lua
@@ -2,12 +2,12 @@ AsuraEngine.Camera = AsuraEngine.Component.Sub("Camera")
local Camera = AsuraEngine.Camera
-Camera.mIsCulling = AsuraEngine.Type.Bool
-Camera.mIsOnScreen = AsuraEngine.Type.Bool
+Camera.isCulling = AsuraEngine.Type.Bool
+Camera.isOnScreen = AsuraEngine.Type.Bool
function Camera.Ctor(self)
- self.mIsCulling = false
- self.mIsOnScreen = false
+ self.isCulling = false
+ self.isOnScreen = false
end
function Camera.OnUpdate(dt)
diff --git a/Source/Asura.Framework/Graphics/particle_system.lua b/Source/Asura.Framework/Graphics/particle_system.lua
index 17d52e7..055d1b2 100644
--- a/Source/Asura.Framework/Graphics/particle_system.lua
+++ b/Source/Asura.Framework/Graphics/particle_system.lua
@@ -4,8 +4,8 @@ AsuraEngine.ParticleSystem = AsuraEngine.Component.Sub("ParticleSystem")
local ParticleSystem = AsuraEngine.ParticleSystem
-function ParticleSystem.Ctor(self, entity, def)
- self.base(entity)
+function ParticleSystem.Ctor(self, gameobject, def)
+ self.base(gameobject)
self.spriteRenderer = AsuraEngine.SpriteRenderer.New()
end
diff --git a/Source/Asura.Framework/Scene.lua b/Source/Asura.Framework/Scene.lua
index 48a766c..c0eaaa8 100644
--- a/Source/Asura.Framework/Scene.lua
+++ b/Source/Asura.Framework/Scene.lua
@@ -1,12 +1,12 @@
--
--- 原点在左下角
+-- Scene是一系列gameobject的集合。
--
AsuraEngine.Scene = AsuraEngine.Asset.Sub("Scene")
local Scene = AsuraEngine.Scene
function Scene.Ctor(self)
- self.entities = {} --当前场景的所有entity
+ self.rootGameObjects = {} --当前场景的所有root gameobject
end
--获取当前的场景
@@ -14,4 +14,8 @@ function Scene.GetCurrent()
end
+function Scene.ToAsset()
+
+end
+
return Scene \ No newline at end of file
diff --git a/Source/Asura.Framework/Transform.lua b/Source/Asura.Framework/Transform.lua
index e45a027..a415921 100644
--- a/Source/Asura.Framework/Transform.lua
+++ b/Source/Asura.Framework/Transform.lua
@@ -1,8 +1,9 @@
-local Transform = AsuraEngine.Class("Transform")
-AsuraEngine.Transform = Transform
+-- transform的起点在左下角,逆时针为正向
+AsuraEngine.Transform = AsuraEngine.Class("Transform")
+local Transform = AsuraEngine.Transform
function Transform.Ctor(self)
- self.position = {}
- self.rotation = {}
- self.size = {}
+ self.position = {x=0, y=0}
+ self.rotation = 0
+ self.size = {w=0, h=0}
end
diff --git a/Source/Asura.Framework/class.lua b/Source/Asura.Framework/class.lua
index ee30c8d..94dc491 100644
--- a/Source/Asura.Framework/class.lua
+++ b/Source/Asura.Framework/class.lua
@@ -1,16 +1,19 @@
AsuraEngine.Class = {}
+
local Class = AsuraEngine.Class
Class.__index = Class
-function AsuraEngine.Class.Sub(cname)
- local c = {}
- c.class = cname
- setmetatable(c, Class)
+function Class.Sub(base, classname)
+ local subclass = {}
+ base.__index = base
+ setmetatable(subclass, base)
return c
end
-function AsuraEngine.Class.New(self)
+--实例化
+function Class.New(cls)
local obj = {}
- setmetatable(obj, self)
- self.__index = self
+ setmetatable(obj, cls)
+ cls.__index = cls
end
+
diff --git a/Source/Asura.Framework/component.lua b/Source/Asura.Framework/component.lua
index a31b31c..289dc8e 100644
--- a/Source/Asura.Framework/component.lua
+++ b/Source/Asura.Framework/component.lua
@@ -3,15 +3,15 @@ AsuraEngine.Component = AsuraEngine.Class("Component")
local Component = AsuraEngine.Component
-- Component要显示在inspector的变量
-Component.mEntity = AsuraEngine.Type.GameObject
+Component.gameobject = AsuraEngine.Type.GameObject
function Component.Sub(cname)
assert(Component.components[cname] == nil)
end
-function Component:Ctor(go)
- self.mEntity = go
+function Component:Ctor(gameobject)
+ self.gameobject = gameobject
end
function Component:OnEvent(e)
diff --git a/Source/Asura.Framework/filesystem/entity_loader.lua b/Source/Asura.Framework/filesystem/entity_loader.lua
index 67a849d..771f86a 100644
--- a/Source/Asura.Framework/filesystem/entity_loader.lua
+++ b/Source/Asura.Framework/filesystem/entity_loader.lua
@@ -1,4 +1,4 @@
-local loader = AsuraEngine.Loader.New("entity")
+local loader = AsuraEngine.Loader.New("gameobject")
function loader.Load(asset)
diff --git a/Source/Asura.Framework/filesystem/scene_loader.lua b/Source/Asura.Framework/filesystem/scene_loader.lua
index 3284c57..c0a951f 100644
--- a/Source/Asura.Framework/filesystem/scene_loader.lua
+++ b/Source/Asura.Framework/filesystem/scene_loader.lua
@@ -1,3 +1,5 @@
+local Scene = require "scene"
+
local loader = AsuraEngine.Loader.New("scene")
function loader.Load(asset)
diff --git a/Source/Asura.Framework/entity.lua b/Source/Asura.Framework/gameobject.lua
index b41d365..cd984ee 100644
--- a/Source/Asura.Framework/entity.lua
+++ b/Source/Asura.Framework/gameobject.lua
@@ -3,15 +3,20 @@
--
require "transform"
-AsuraEngine.Entity = AsuraEngine.Asset.Sub("Entity")
+AsuraEngine.GameObject = AsuraEngine.Asset.Sub("GameObject")
-local Entity = AsuraEngine.Entity
+local GameObject = AsuraEngine.GameObject
-function Entity:Ctor()
- self.transform = AsuraEngine.Transform.New()
+function GameObject:Ctor()
+ self.transform = AsuraEngine.Transform.New()
+ self.subentities = {} -- Sub node entities
end
-function Entity:AddComponent(type, name)
+function GameObject:AddChild(gameobject)
+ table.insert(self.child, gameobject)
+end
+
+function GameObject:AddComponent(type, name)
local cname = type
if name == nil then
cname = name
@@ -21,20 +26,20 @@ function Entity:AddComponent(type, name)
end
-- 根据组件名拿到组件
-function Entity:GetComponent(name)
+function GameObject:GetComponent(name)
return self.components[name]
end
-- 根据组件类型拿到组件
-function Entity:GetComponentByType(tname)
+function GameObject:GetComponentByType(tname)
end
-function Entity:OnEnable()
+function GameObject:OnEnable()
end
-function Entity:OnEvent(e)
+function GameObject:OnEvent(e)
if self.components == nil or type(self.components) ~= "table" then
AsuraEditor.LogError("")
return
@@ -46,7 +51,7 @@ function Entity:OnEvent(e)
end
end
-function Entity:OnUpdate(dt)
+function GameObject:OnUpdate(dt)
for name, component in self.components do
if component.OnUpdate ~= nil then
component:OnUpdate(dt)
@@ -54,7 +59,7 @@ function Entity:OnUpdate(dt)
end
end
-function Entity:OnRender()
+function GameObject:OnRender()
for name, component in self.components do
if component.OnRender ~= nil then
component.OnRender()
@@ -62,7 +67,7 @@ function Entity:OnRender()
end
end
-function Entity:OnDisable()
+function GameObject:OnDisable()
for name, component in self.components do
if component.OnDisable ~= nil then
component.OnDisable()
@@ -70,41 +75,41 @@ function Entity:OnDisable()
end
end
-function Entity:GetTrasform()
+function GameObject:GetTrasform()
return self.transform
end
-function Entity:GetPosition()
+function GameObject:GetPosition()
end
-function Entity:GetScale()
+function GameObject:GetScale()
end
-function Entity:GetRotation()
+function GameObject:GetRotation()
end
-function Entity:SetTrasform(transform)
+function GameObject:SetTrasform(transform)
end
-function Entity:SetPosition()
+function GameObject:SetPosition()
end
-function Entity:SetScale()
+function GameObject:SetScale()
end
-function Entity:SetRotation()
+function GameObject:SetRotation()
end
--写asset
-function Entity:ToAsset()
+function GameObject:ToAsset()
end
-return Entity \ No newline at end of file
+return GameObject \ No newline at end of file
diff --git a/Source/Asura.Framework/graphics/animator.lua b/Source/Asura.Framework/graphics/animator.lua
index 7cc18a1..02f67ff 100644
--- a/Source/Asura.Framework/graphics/animator.lua
+++ b/Source/Asura.Framework/graphics/animator.lua
@@ -3,21 +3,21 @@ AsuraEngine.Animator = AsuraEngine.Component.Sub("Animator")
local Animator = AsuraEngine.Animator
-- Animator inspector variables.
-Animator.mSpriteRenderer = AsuraEngine.Type.SpriteRenderer
-Animator.mAnimation = AsuraEngine.Type.Animation
+Animator.spriteRenderer = AsuraEngine.Type.SpriteRenderer
+Animator.animation = AsuraEngine.Type.Animation
-function Animator:Ctor(entity, animation)
- self.base(entity)
- self.mSpriteRenderer = entity:GetSpriteRenderer()
- self.mAnimation = animation
+function Animator:Ctor(gameobject, animation)
+ self.base(gameobject)
+ self.spriteRenderer = gameobject:GetSpriteRenderer()
+ self.animation = animation
end
function Animator:SetAnimation(animation)
- self.mAnimation = animation
+ self.animation = animation
end
function Animator:GetAnimation()
- return self.mAnimation
+ return self.animation
end
function Animator:OnUpdate(dt)
diff --git a/Source/Asura.Framework/graphics/camera.lua b/Source/Asura.Framework/graphics/camera.lua
index 039de1a..c8176f8 100644
--- a/Source/Asura.Framework/graphics/camera.lua
+++ b/Source/Asura.Framework/graphics/camera.lua
@@ -2,12 +2,12 @@ AsuraEngine.Camera = AsuraEngine.Component.Sub("Camera")
local Camera = AsuraEngine.Camera
-Camera.mIsCulling = AsuraEngine.Type.Bool
-Camera.mIsOnScreen = AsuraEngine.Type.Bool
+Camera.isCulling = AsuraEngine.Type.Bool
+Camera.isOnScreen = AsuraEngine.Type.Bool
function Camera.Ctor(self)
- self.mIsCulling = false
- self.mIsOnScreen = false
+ self.isCulling = false
+ self.isOnScreen = false
end
function Camera.OnUpdate(dt)
diff --git a/Source/Asura.Framework/graphics/canvas.lua b/Source/Asura.Framework/graphics/canvas.lua
index 2ccb033..248c3ab 100644
--- a/Source/Asura.Framework/graphics/canvas.lua
+++ b/Source/Asura.Framework/graphics/canvas.lua
@@ -3,32 +3,32 @@ AsuraEngine.Canvas = AsuraEngine.Component.Sub("Canvas")
local Canvas = AsuraEngine.Canvas
function Canvas.Ctor(self, width, height)
- self.mSimCanvas = AsuraEngine.SimCanvas.New(width, height)
- self.mWidth = width
- self.mHeight = height
+ self.simCanvas = AsuraEngine.SimCanvas.New(width, height)
+ self.width = width
+ self.height = height
end
function Canvas.GetWidth(self)
- return self.mWidth
+ return self.width
end
function Canvas.GetHeight(self)
- return self.mHeight
+ return self.height
end
function Canvas.GetSize(self)
- return self.mWidth, self.mHeight
+ return self.width, self.height
end
function Canvas.OnEnable(self)
- if self.mSimCanvas == nil then
+ if self.simCanvas == nil then
return
end
- self.mSimCanvas:Begin()
+ self.simCanvas:Begin()
end
function Canvas.OnDisable(self)
-
+
end
return Canvas \ No newline at end of file
diff --git a/Source/Asura.Framework/graphics/particle_system.lua b/Source/Asura.Framework/graphics/particle_system.lua
index 17d52e7..055d1b2 100644
--- a/Source/Asura.Framework/graphics/particle_system.lua
+++ b/Source/Asura.Framework/graphics/particle_system.lua
@@ -4,8 +4,8 @@ AsuraEngine.ParticleSystem = AsuraEngine.Component.Sub("ParticleSystem")
local ParticleSystem = AsuraEngine.ParticleSystem
-function ParticleSystem.Ctor(self, entity, def)
- self.base(entity)
+function ParticleSystem.Ctor(self, gameobject, def)
+ self.base(gameobject)
self.spriteRenderer = AsuraEngine.SpriteRenderer.New()
end
diff --git a/Source/Asura.Framework/managers/scene_manager.lua b/Source/Asura.Framework/managers/scene_manager.lua
new file mode 100644
index 0000000..fc5a6ba
--- /dev/null
+++ b/Source/Asura.Framework/managers/scene_manager.lua
@@ -0,0 +1,16 @@
+AsuraEngine.SceneManager = AsuraEngine.Class("SceneManager")
+
+local SceneManager = AsuraEngine.SceneManager
+
+--游戏里的所有场景
+SceneManager.scenes = {}
+
+function SceneManager.Ctor()
+
+end
+
+function SceneManager.GetSceneByGUID()
+
+end
+
+return SceneManager \ No newline at end of file
diff --git a/Source/Asura.Framework/managers/sprite_manager.lua b/Source/Asura.Framework/managers/sprite_manager.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Framework/managers/sprite_manager.lua
diff --git a/Source/Asura.Framework/scene.lua b/Source/Asura.Framework/scene.lua
index 48a766c..c0eaaa8 100644
--- a/Source/Asura.Framework/scene.lua
+++ b/Source/Asura.Framework/scene.lua
@@ -1,12 +1,12 @@
--
--- 原点在左下角
+-- Scene是一系列gameobject的集合。
--
AsuraEngine.Scene = AsuraEngine.Asset.Sub("Scene")
local Scene = AsuraEngine.Scene
function Scene.Ctor(self)
- self.entities = {} --当前场景的所有entity
+ self.rootGameObjects = {} --当前场景的所有root gameobject
end
--获取当前的场景
@@ -14,4 +14,8 @@ function Scene.GetCurrent()
end
+function Scene.ToAsset()
+
+end
+
return Scene \ No newline at end of file
diff --git a/Source/Asura.Framework/transform.lua b/Source/Asura.Framework/transform.lua
index e45a027..a415921 100644
--- a/Source/Asura.Framework/transform.lua
+++ b/Source/Asura.Framework/transform.lua
@@ -1,8 +1,9 @@
-local Transform = AsuraEngine.Class("Transform")
-AsuraEngine.Transform = Transform
+-- transform的起点在左下角,逆时针为正向
+AsuraEngine.Transform = AsuraEngine.Class("Transform")
+local Transform = AsuraEngine.Transform
function Transform.Ctor(self)
- self.position = {}
- self.rotation = {}
- self.size = {}
+ self.position = {x=0, y=0}
+ self.rotation = 0
+ self.size = {w=0, h=0}
end