Example #1
0
        public override Action Reverse()
        {
            FiniteTimeAction action1 = finiteTimeActions[1].Reverse() as FiniteTimeAction;
            FiniteTimeAction action0 = finiteTimeActions[0].Reverse() as FiniteTimeAction;

            return(new Sequence(action1, action0));
        }
Example #2
0
        public Repeat(FiniteTimeAction action, int times)
        {
            _times   = times;
            duration = action.GetDuration() * times;

            _innerAction = action;
        }
Example #3
0
        public Sequence(FiniteTimeAction action1, FiniteTimeAction action2)
        {
            float totalduration = action1.GetDuration() + action2.GetDuration();

            duration = totalduration;

            finiteTimeActions[0] = action1;
            finiteTimeActions[1] = action2;
        }
Example #4
0
        public Spawn(FiniteTimeAction action1, FiniteTimeAction action2)
        {
            //CCASSERT(action1 != nullptr, "action1 can't be nullptr!");
            //CCASSERT(action2 != nullptr, "action2 can't be nullptr!");



            _one = action1;
            _two = action2;

            AccumulateDuration(action1, action2);
        }
Example #5
0
        void AccumulateDuration(FiniteTimeAction action1, FiniteTimeAction action2)
        {
            float d1 = _one.GetDuration();
            float d2 = _two.GetDuration();

            duration = Mathf.Max(d1, d2);
            if (d1 > d2)
            {
                _two = new Sequence(action2, new DelayTime(d1 - d2));
            }
            else
            if (d1 < d2)
            {
                _one = new Sequence(action1, new DelayTime(d2 - d1));
            }
        }
Example #6
0
        public IEnumerator YieldAction(FiniteTimeAction anAction)
        {
            if(action !=null)
                Debug.LogError("An action is already running");
            else
            {
                action = anAction;

                Action.Run(transform,action);
                yield return new WaitForSeconds(action.GetDuration());
                while(!action.IsDone())
                {
                    yield return null;
                }
                action=null;
            }
        }
Example #7
0
        public IEnumerator YieldAction(FiniteTimeAction anAction)
        {
            if (action != null)
            {
                Debug.LogError("An action is already running");
            }
            else
            {
                action = anAction;

                Action.Run(transform, action);
                yield return(new WaitForSeconds(action.GetDuration()));

                while (!action.IsDone())
                {
                    yield return(null);
                }
                action = null;
            }
        }
        private Sequence( bool dummy,FiniteTimeAction[] list)
            : base(1)
        {
            if(list.Length==0)
            {
                finiteTimeActions[0]= new ExtraAction();
                finiteTimeActions[1]= new ExtraAction();
                AccumulateDuration();
            }
            else if(list.Length==1)
            {
                finiteTimeActions[0]= list[0];
                finiteTimeActions[1]= new ExtraAction();

                AccumulateDuration();
            }else if(list.Length==2)
            {
                finiteTimeActions[0]= list[0];
                finiteTimeActions[1]= list[1];

            }else
            {// GREATER THAN 2

                Sequence last = new Sequence (list[list.Length-2],list[list.Length-1]);

                for(int i= list.Length-3;i>=1;i--)
                {
                    last = new Sequence(list[i],last);
                }

                finiteTimeActions[0]= list[0];
                finiteTimeActions[1]= last;

                AccumulateDuration();
            }
        }
        public Repeat(FiniteTimeAction action, int times)
        {
            _times=times;
            duration = action.GetDuration() * times;

            _innerAction=action;
        }
Example #10
0
        public Sequence( FiniteTimeAction  action1,FiniteTimeAction  action2)
        {
            float totalduration = action1.GetDuration()+action2.GetDuration();
            duration = totalduration;

            finiteTimeActions[0]=action1;
            finiteTimeActions[1]=action2;
        }
Example #11
0
        Spawn(bool dummy,FiniteTimeAction[] list)
        {
            if(list.Length<3)
                Debug.LogError("Array length should greater than 2");

                Spawn last = new Spawn (list[list.Length-2],list[list.Length-1]);

            for(int i= list.Length-3;i>=1;i--)
            {
                last = new Spawn(list[i],last);
            }

            _one= list[0];
            _two= last;

            AccumulateDuration(_one,_two);
        }
Example #12
0
 void AccumulateDuration(FiniteTimeAction action1, FiniteTimeAction action2)
 {
     float d1 = _one.GetDuration ();
     float d2 = _two.GetDuration ();
     duration = Mathf.Max (d1, d2);
     if (d1 > d2) {
         _two = new Sequence (action2, new DelayTime (d1 - d2));
     }
     else
         if (d1 < d2) {
             _one = new Sequence (action1, new DelayTime (d2 - d1));
         }
 }
Example #13
0
        public Spawn(FiniteTimeAction action1, FiniteTimeAction action2)
        {
            //CCASSERT(action1 != nullptr, "action1 can't be nullptr!");
            //CCASSERT(action2 != nullptr, "action2 can't be nullptr!");

            _one = action1;
            _two = action2;

            AccumulateDuration (action1, action2);
        }
Example #14
0
 public static Coroutine RunAction(this MonoBehaviour component, FiniteTimeAction action)
 {
     return(Actor.GetActor(component.transform).PerformAction(action));
 }
Example #15
0
 public Coroutine PerformAction(FiniteTimeAction anAction)
 {
     return StartCoroutine(YieldAction(anAction));
 }
Example #16
0
 public Coroutine PerformAction(FiniteTimeAction anAction)
 {
     return(StartCoroutine(YieldAction(anAction)));
 }
Example #17
0
 public static Coroutine RunAction(this MonoBehaviour component, FiniteTimeAction action)
 {
     return Actor.GetActor (component.transform).PerformAction (action);
 }