示例#1
0
 public BulletEmitter(int defState, params BulletPattern[] pats)
 {
     myPats   = new List <BulletPattern>(pats);
     curState = new EmitterState(defState);
     changes  = new LayeredLinkedList <EmitterState>(0, st => st.StartTime, 1000, 100, 10, 1);
     changes.Add(curState);
 }
示例#2
0
        public GameEvent ChangePattern(double time, int pat, double offset = 0)
        {
            EmitterState es = null;

            return(new GameEvent(time,
                                 (g, st) => {
                if (st == GameEventState.Unprocessed)
                {
                    es = new EmitterState(pat, time, offset);
                    changes.Add(es);
                }
            },
                                 GameEvent.DoNothing,
                                 (g, st) => {
                if (st != GameEventState.Unprocessed)
                {
                    if (es != null)
                    {
                        changes.Remove(es);
                    }
                }
            }));
        }