#pragma once //AI管理器,用于创建各种AI实体 enum tagAiType { atAiTypePassive = 1, ///< 被动怪 atAiTypeAggressor = 2, ///< 主动怪 atAiTypePet = 3, ///< 宠物怪 atAiTypeHero = 4, ///< 英雄 // TO DELETE atAiTypeRandomFlee = 6, ///< 随机逃跑怪 atAiTypeNeutrally = 7, ///< 中立怪(不会攻击别人) atAiTypeNPC = 8, ///< NPC atAiTypeSpecial = 9, ///< 塔防类 }; class CAiMgr { public: typedef HandleMgr AggressorAIMgr; ///< 主动怪的ai typedef HandleMgr PassiveAIMgr; ///< 被动怪的ai typedef HandleMgr RandomFleeAIMgr; ///< 随机逃跑怪的ai typedef HandleMgr NeutralAIMgr; ///< 中立怪的ai typedef HandleMgr NPCAIMgr; ///< NPC AI typedef HandleMgr PETAIMgr; ///< 宠物的AI typedef HandleMgr HEROAIMgr; ///< 英雄的AI typedef HandleMgr SPECIALAIMgr; CAiMgr():m_aggressorAiMgr(_T("AggrAIHdlMgr")), m_passiveAiMgr(_T("PassAIHdlMgr")), m_randomFleeAiMgr(_T("RandomFleeAIHdlMgr")), m_neutralAiMgr(_T("NeutralAIHdlMgr")), m_NPCAIMgr(_T("NpcAIHdlMgr")), m_petAiMgr(_T("PetAIMgr")),m_heroAiMgr(_T("HeroAIMgr")),m_SpecialAiMgr(_T("SpecialAiMgr")) {} /* * Comments: 创建一个AI对象 * Param INT_PTR nAiId: AI的ID * Param CAnimal * pAnimal: ai所有人的指针 * @Return CAnimalAI *: ai的指针 */ CAnimalAI * CreateAi(INT_PTR nAiId,CAnimal * pAnimal); /* * Comments: 删除一个ai * Param CAnimalAI * pAi: ai的指针 * @Return void: */ void DestroyAi(CAnimalAI * pAi); private: AggressorAIMgr m_aggressorAiMgr; ///< 主动怪的ai的管理器 PassiveAIMgr m_passiveAiMgr; ///< 被动怪的ai管理器 RandomFleeAIMgr m_randomFleeAiMgr; ///< 随机逃跑怪物ai NeutralAIMgr m_neutralAiMgr; ///< 中立怪ai NPCAIMgr m_NPCAIMgr; ///< NPC ai管理器 PETAIMgr m_petAiMgr; ///< 宠物的ai管理器 HEROAIMgr m_heroAiMgr; ///< 英雄的ai管理器 SPECIALAIMgr m_SpecialAiMgr; };