Пример #1
0
    /// <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);
    }
Пример #2
0
 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"));
 }