From 3ae4d5d2615810ae715fdc77c5f1d31b891be6a8 Mon Sep 17 00:00:00 2001 From: yhh <359807859@qq.com> Date: Tue, 2 Jul 2019 14:34:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EEventManager=20=E8=A7=84?= =?UTF-8?q?=E8=8C=83=E6=96=87=E4=BB=B6=E5=A4=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CLEngine.Core/components/EventObject.cs | 1 - .../CLEngine.Core/framework/EventManager.cs | 66 +++++++++++++++++++ .../AnimatedSprite.cs | 0 .../AnimationObject.cs | 0 .../AudioObject.cs | 0 .../{game-objects => gameObjects}/BMFont.cs | 0 .../LuaObject.cs | 0 .../MapObject.cs | 0 .../ParticleEmitter.cs | 0 .../{game-objects => gameObjects}/Sprite.cs | 0 .../{game-objects => gameObjects}/Tileset.cs | 0 11 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 Engine/CLEngine.Core/framework/EventManager.cs rename Engine/CLEngine.Core/{game-objects => gameObjects}/AnimatedSprite.cs (100%) rename Engine/CLEngine.Core/{game-objects => gameObjects}/AnimationObject.cs (100%) rename Engine/CLEngine.Core/{game-objects => gameObjects}/AudioObject.cs (100%) rename Engine/CLEngine.Core/{game-objects => gameObjects}/BMFont.cs (100%) rename Engine/CLEngine.Core/{game-objects => gameObjects}/LuaObject.cs (100%) rename Engine/CLEngine.Core/{game-objects => gameObjects}/MapObject.cs (100%) rename Engine/CLEngine.Core/{game-objects => gameObjects}/ParticleEmitter.cs (100%) rename Engine/CLEngine.Core/{game-objects => gameObjects}/Sprite.cs (100%) rename Engine/CLEngine.Core/{game-objects => gameObjects}/Tileset.cs (100%) diff --git a/Engine/CLEngine.Core/components/EventObject.cs b/Engine/CLEngine.Core/components/EventObject.cs index d9fe1e5..f1896f1 100644 --- a/Engine/CLEngine.Core/components/EventObject.cs +++ b/Engine/CLEngine.Core/components/EventObject.cs @@ -359,7 +359,6 @@ namespace CLEngine.Core if (_isMove && !forceMove) return; - var tiledMap = GetTileMap(); var transform = GameObject.Transform; var start = tiledMap.GetTilePos(transform.Position); diff --git a/Engine/CLEngine.Core/framework/EventManager.cs b/Engine/CLEngine.Core/framework/EventManager.cs new file mode 100644 index 0000000..c46d8a4 --- /dev/null +++ b/Engine/CLEngine.Core/framework/EventManager.cs @@ -0,0 +1,66 @@ +using System.Collections.Generic; +using Microsoft.Xna.Framework; + +namespace CLEngine.Core.framework +{ + /// + /// 事件管理类 + /// + public static class EventManager + { + private static List eventObjects = new List(); + + /// + /// 添加事件 + /// + /// 事件 + public static EventObject AddEvent() + { + var eventObject = new EventObject(); + eventObjects.Add(eventObject); + + return eventObject; + } + + /// + /// 移除事件 + /// + /// 事件 + public static void RemoveEvent(EventObject eventObject) + { + eventObjects.Remove(eventObject); + } + + /// + /// 绑定对象 + /// + /// 事件 + /// 对象 + public static void BindObject(this EventObject eventObject, GameObject gameObject) + { + eventObject.GameObject = gameObject; + } + + /// + /// 释放对象 + /// + /// 事件 + public static void ReleaseObject(this EventObject eventObject) + { + eventObject.GameObject = null; + } + + /// + /// 移动对象 + /// + /// 事件 + /// 移动目标 + /// 是否转换为格子坐标 + /// 是否强制移动 + public static void Move(this EventObject eventObject, Vector2 target, bool convert = false, + bool forceMove = false) + { + eventObject.MoveToTarget(target, convert, forceMove); + } + } +} \ No newline at end of file diff --git a/Engine/CLEngine.Core/game-objects/AnimatedSprite.cs b/Engine/CLEngine.Core/gameObjects/AnimatedSprite.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/AnimatedSprite.cs rename to Engine/CLEngine.Core/gameObjects/AnimatedSprite.cs diff --git a/Engine/CLEngine.Core/game-objects/AnimationObject.cs b/Engine/CLEngine.Core/gameObjects/AnimationObject.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/AnimationObject.cs rename to Engine/CLEngine.Core/gameObjects/AnimationObject.cs diff --git a/Engine/CLEngine.Core/game-objects/AudioObject.cs b/Engine/CLEngine.Core/gameObjects/AudioObject.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/AudioObject.cs rename to Engine/CLEngine.Core/gameObjects/AudioObject.cs diff --git a/Engine/CLEngine.Core/game-objects/BMFont.cs b/Engine/CLEngine.Core/gameObjects/BMFont.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/BMFont.cs rename to Engine/CLEngine.Core/gameObjects/BMFont.cs diff --git a/Engine/CLEngine.Core/game-objects/LuaObject.cs b/Engine/CLEngine.Core/gameObjects/LuaObject.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/LuaObject.cs rename to Engine/CLEngine.Core/gameObjects/LuaObject.cs diff --git a/Engine/CLEngine.Core/game-objects/MapObject.cs b/Engine/CLEngine.Core/gameObjects/MapObject.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/MapObject.cs rename to Engine/CLEngine.Core/gameObjects/MapObject.cs diff --git a/Engine/CLEngine.Core/game-objects/ParticleEmitter.cs b/Engine/CLEngine.Core/gameObjects/ParticleEmitter.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/ParticleEmitter.cs rename to Engine/CLEngine.Core/gameObjects/ParticleEmitter.cs diff --git a/Engine/CLEngine.Core/game-objects/Sprite.cs b/Engine/CLEngine.Core/gameObjects/Sprite.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/Sprite.cs rename to Engine/CLEngine.Core/gameObjects/Sprite.cs diff --git a/Engine/CLEngine.Core/game-objects/Tileset.cs b/Engine/CLEngine.Core/gameObjects/Tileset.cs similarity index 100% rename from Engine/CLEngine.Core/game-objects/Tileset.cs rename to Engine/CLEngine.Core/gameObjects/Tileset.cs -- Gitee