diff --git a/core/Tool/CollisionListener.cpp b/core/Tool/Listener/CollisionListener.cpp
similarity index 89%
rename from core/Tool/CollisionListener.cpp
rename to core/Tool/Listener/CollisionListener.cpp
index 73fb683c..0592b516 100644
--- a/core/Tool/CollisionListener.cpp
+++ b/core/Tool/Listener/CollisionListener.cpp
@@ -1,5 +1,5 @@
-#include "..\etool.h"
-#include "..\emanager.h"
+#include "..\..\etool.h"
+#include "..\..\emanager.h"
e2d::CollisionListener::CollisionListener()
: Listener()
diff --git a/core/Tool/InputListener.cpp b/core/Tool/Listener/InputListener.cpp
similarity index 90%
rename from core/Tool/InputListener.cpp
rename to core/Tool/Listener/InputListener.cpp
index 03a67ddd..0950b3a2 100644
--- a/core/Tool/InputListener.cpp
+++ b/core/Tool/Listener/InputListener.cpp
@@ -1,5 +1,5 @@
-#include "..\etool.h"
-#include "..\emanager.h"
+#include "..\..\etool.h"
+#include "..\..\emanager.h"
e2d::InputListener::InputListener()
: Listener()
diff --git a/core/Tool/Listener.cpp b/core/Tool/Listener/Listener.cpp
similarity index 95%
rename from core/Tool/Listener.cpp
rename to core/Tool/Listener/Listener.cpp
index f693c161..1a62b50f 100644
--- a/core/Tool/Listener.cpp
+++ b/core/Tool/Listener/Listener.cpp
@@ -1,4 +1,4 @@
-#include "..\etool.h"
+#include "..\..\etool.h"
e2d::Listener::Listener()
: m_bRunning(false)
diff --git a/core/ecommon.h b/core/ecommon.h
index 33927b3d..543e71a1 100644
--- a/core/ecommon.h
+++ b/core/ecommon.h
@@ -75,7 +75,7 @@ struct Size
// 字符串
-class String final
+class String
{
public:
String();
diff --git a/core/emanager.h b/core/emanager.h
index 9ec6d9b2..bdca46af 100644
--- a/core/emanager.h
+++ b/core/emanager.h
@@ -18,7 +18,7 @@ class InputListener;
class CollisionListener;
// 对象管理器
-class ObjectManager final
+class ObjectManager
{
friend Game;
@@ -41,7 +41,7 @@ private:
// 场景管理器
-class SceneManager final
+class SceneManager
{
friend Game;
friend Renderer;
@@ -87,7 +87,7 @@ private:
// 定时器管理器
-class TimerManager final
+class TimerManager
{
friend Game;
friend Node;
@@ -150,7 +150,7 @@ private:
// 动作管理器
-class ActionManager final
+class ActionManager
{
friend Game;
friend Node;
@@ -235,7 +235,7 @@ private:
// 音乐管理工具
-class MusicManager final
+class MusicManager
{
friend Game;
@@ -305,7 +305,7 @@ private:
// 键盘和鼠标消息管理器
-class InputManager final
+class InputManager
{
friend Input;
friend InputListener;
@@ -361,7 +361,7 @@ private:
// 碰撞管理器
-class ColliderManager final
+class ColliderManager
{
friend Node;
friend Collider;
diff --git a/project/vs2010/Easy2D.vcxproj b/project/vs2010/Easy2D.vcxproj
index 04cddd0c..4b328bde 100644
--- a/project/vs2010/Easy2D.vcxproj
+++ b/project/vs2010/Easy2D.vcxproj
@@ -40,6 +40,10 @@
+
+
+
+
@@ -48,7 +52,7 @@
-
+
@@ -58,16 +62,17 @@
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
@@ -78,16 +83,17 @@
-
+
+
-
-
+
+
-
-
+
+
{47AF11E1-8725-4ECA-B8CF-951ABC397B31}
diff --git a/project/vs2010/Easy2D.vcxproj.filters b/project/vs2010/Easy2D.vcxproj.filters
index cc4ecc9c..dbd324ef 100644
--- a/project/vs2010/Easy2D.vcxproj.filters
+++ b/project/vs2010/Easy2D.vcxproj.filters
@@ -22,8 +22,14 @@
{6c760a81-9bc8-4fb0-a145-8e119b783365}
-
- {508b39c8-a430-45c3-9405-364fbc281220}
+
+ {4c1db04d-1ba5-4313-924e-c58c35265eed}
+
+
+ {fe2c1cba-f77d-4a33-bc8a-4f40ecd9d618}
+
+
+ {72484ebf-d464-4f37-ad9b-340b378f9701}
@@ -111,24 +117,9 @@
Common
-
- Shape
-
-
- Shape
-
-
- Shape
-
-
- Shape
-
Manager
-
- Manager
-
Manager
@@ -162,18 +153,9 @@
Node
-
- Tool
-
Tool
-
- Tool
-
-
- Tool
-
Tool
@@ -198,17 +180,57 @@
Transition
+
+ Manager
+
+
+ Collider
+
+
+ Collider
+
+
+ Collider
+
+
+ Collider
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Tool\Listener
+
+
+ Tool\Listener
+
+
+ Tool\Listener
+
-
+
+
-
-
+
+
-
-
+
+
\ No newline at end of file
diff --git a/project/vs2012/Easy2D.vcxproj b/project/vs2012/Easy2D.vcxproj
index af63fb15..962fd904 100644
--- a/project/vs2012/Easy2D.vcxproj
+++ b/project/vs2012/Easy2D.vcxproj
@@ -18,18 +18,6 @@
x64
-
-
-
-
-
-
-
-
-
-
-
-
@@ -52,6 +40,10 @@
+
+
+
+
@@ -60,7 +52,7 @@
-
+
@@ -70,16 +62,17 @@
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
@@ -89,6 +82,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{722EA245-ADD5-4296-8C85-8FF42C0335D3}
Win32Proj
diff --git a/project/vs2012/Easy2D.vcxproj.filters b/project/vs2012/Easy2D.vcxproj.filters
index 65d1fc4f..f127fd92 100644
--- a/project/vs2012/Easy2D.vcxproj.filters
+++ b/project/vs2012/Easy2D.vcxproj.filters
@@ -22,21 +22,15 @@
{337d5a0f-60fd-473a-83da-b2a3515affd9}
-
- {dfaa8954-50d7-49c5-8aa6-7232c6d5c557}
+
+ {4ff7f97f-95dd-4060-badc-0362c74a7318}
+
+
+ {f0ed2748-5199-48d1-930c-286afd27c235}
+
+
+ {836e9902-e58c-4cfa-9c23-26632ae737ba}
-
-
-
-
-
-
-
-
-
-
-
-
@@ -180,35 +174,63 @@
Tool
-
- Tool
-
-
- Tool
-
-
- Tool
-
-
- Shape
-
-
- Shape
-
-
- Shape
-
-
- Shape
-
-
- Manager
-
Manager
Action
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Collider
+
+
+ Collider
+
+
+ Collider
+
+
+ Collider
+
+
+ Manager
+
+
+ Tool\Listener
+
+
+ Tool\Listener
+
+
+ Tool\Listener
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/project/vs2013/Easy2D.vcxproj b/project/vs2013/Easy2D.vcxproj
index 207a5d58..88dac2bb 100644
--- a/project/vs2013/Easy2D.vcxproj
+++ b/project/vs2013/Easy2D.vcxproj
@@ -156,18 +156,6 @@
true
-
-
-
-
-
-
-
-
-
-
-
-
@@ -190,6 +178,10 @@
+
+
+
+
@@ -198,7 +190,7 @@
-
+
@@ -208,16 +200,17 @@
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
@@ -227,6 +220,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vs2013/Easy2D.vcxproj.filters b/project/vs2013/Easy2D.vcxproj.filters
index 243db43b..ff40cc2f 100644
--- a/project/vs2013/Easy2D.vcxproj.filters
+++ b/project/vs2013/Easy2D.vcxproj.filters
@@ -22,21 +22,15 @@
{337d5a0f-60fd-473a-83da-b2a3515affd9}
-
- {dfaa8954-50d7-49c5-8aa6-7232c6d5c557}
+
+ {47b7c15b-ac05-4773-a9ee-7aa352830f02}
+
+
+ {2092de23-7fdd-430a-9936-1038c55b504b}
+
+
+ {8c3a8c7b-5406-400f-9ec1-db294632e449}
-
-
-
-
-
-
-
-
-
-
-
-
@@ -180,35 +174,63 @@
Tool
-
- Tool
-
-
- Tool
-
-
- Tool
-
-
- Shape
-
-
- Shape
-
-
- Shape
-
-
- Shape
-
-
- Manager
-
Manager
Action
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Node\Shape
+
+
+ Collider
+
+
+ Collider
+
+
+ Collider
+
+
+ Collider
+
+
+ Manager
+
+
+ Tool\Listener
+
+
+ Tool\Listener
+
+
+ Tool\Listener
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/project/vs2017/Easy2D.vcxproj b/project/vs2017/Easy2D.vcxproj
index fd810b6a..59f22bec 100644
--- a/project/vs2017/Easy2D.vcxproj
+++ b/project/vs2017/Easy2D.vcxproj
@@ -240,10 +240,10 @@
-
-
-
+
+
+
diff --git a/project/vs2017/Easy2D.vcxproj.filters b/project/vs2017/Easy2D.vcxproj.filters
index 22397e8a..5761c759 100644
--- a/project/vs2017/Easy2D.vcxproj.filters
+++ b/project/vs2017/Easy2D.vcxproj.filters
@@ -28,6 +28,9 @@
{eb72b49a-5b2f-4fc0-9ad2-8f5e02efac6f}
+
+ {d3968182-2399-40d4-8e39-accb4711018c}
+
@@ -171,18 +174,9 @@
Tool
-
- Tool
-
-
- Tool
-
Manager
-
- Tool
-
Action
@@ -216,6 +210,15 @@
Node\Shape
+
+ Tool\Listener
+
+
+ Tool\Listener
+
+
+ Tool\Listener
+