public override void Update() { if (item != null) { item.OnUpdate(); } }
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(); }