/// <summary> /// 创建EnemyObject /// </summary> /// <param name="type">类型</param> /// <returns></returns> public EnemyObjectBase CreateEnemyObjectByType(eEnemyObjectType type) { EnemyObjectBase enemyObj = null; Stack <EnemyObjectBase> _stack; if (_enemyObjectsPool.TryGetValue(type, out _stack)) { if (_stack.Count > 0) { return(_stack.Pop()); } } else { _stack = new Stack <EnemyObjectBase>(); _enemyObjectsPool.Add(type, _stack); } switch (type) { case eEnemyObjectType.Fairy: enemyObj = new Fairy(); break; case eEnemyObjectType.SpinningEnemy: enemyObj = new SpinningEnemy(); break; } return(enemyObj); }
public void parse(XmlElement xmlElement) { id = xmlElement.GetAttribute("id"); name = xmlElement.GetAttribute("name"); type = (eEnemyObjectType)int.Parse(xmlElement.GetAttribute("type")); aniId = xmlElement.GetAttribute("aniId"); eliminatedEffectStyle = int.Parse(xmlElement.GetAttribute("eliminateEffectStyle")); collisionHalfWidth = float.Parse(xmlElement.GetAttribute("collHW")); collisionHalfHeight = float.Parse(xmlElement.GetAttribute("collHH")); dropHalfWidth = float.Parse(xmlElement.GetAttribute("dropHW")); dropHalfHeight = float.Parse(xmlElement.GetAttribute("dropHH")); }