예제 #1
0
 public override void Update()
 {
     if (item != null)
     {
         item.OnUpdate();
     }
 }
예제 #2
0
    public void Update()
    {
//         for (int i = 0; i < mEffects.Keys.Count; ++i)
//         {
//             uint key = mEffects.Keys.ElementAt(i);
//             if (!mEffects.ContainsKey(key))
//             {
//                 continue;
//             }
//
//         }
        IDictionaryEnumerator itr = mEffects.GetEnumerator();

        while (itr.MoveNext())
        {
            ParticleItem item = itr.Value as ParticleItem;
            if (item != null)
            {
                //检测特效是否播放完成
                if (item == null || item.IsDead())
                {
                    //自然消失的特效放在这里,管理器将其销毁
                    if (item != null)
                    {
                        mDestroys.Add((uint)itr.Key);
                    }
                }
                else
                {
                    item.OnUpdate();
                }
            }
        }
        for (int i = 0; i < mDestroys.Count; ++i)
        {
            uint key = (uint)mDestroys[i];

            if (mEffects.ContainsKey(key))
            {
                ParticleItem item = mEffects[key] as ParticleItem;
                if (item.visual != null)
                {
                    ParticleVisual.DestroyParticle(item.visual);
                }
                mEffects.Remove(key);
            }
        }

        mDestroys.Clear();
    }