コード例 #1
0
 /// <summary>
 /// Blocks execution of code until the time duration has passed.
 /// </summary>
 /// <param name="duration"></param>
 /// <returns></returns>
 protected void WaitThen(int duration, Action action)
 {
     Misc.GameTimer timer = new Misc.GameTimer();
     _waitTimers.Add(timer);
     timer.ResetAndWaitFor(duration, delegate()
     {
         action?.Invoke();
         _waitTimers.Remove(timer);
     });
 }
コード例 #2
0
        public override void Initialize(Entity entity)
        {
            _jumpTimer = CreateTimedAction(TimeBetweenJumps_IDLE, Jump);

            entity.CurrentCollisionType   = CollisionType.None;
            entity.CollidedWithTileBelow += Entity_CollidedWithTileBelow;
            entity.AddAnimationToQueue("still");

            base.Initialize(entity);
        }
コード例 #3
0
 /// <summary>
 /// Performs the given action after the given duration.
 /// </summary>
 /// <param name="waitDuration"></param>
 /// <param name="action"></param>
 /// <returns>A timer that has the set time</returns>
 protected Misc.GameTimer CreateTimedAction(int duration, Action action)
 {
     Misc.GameTimer timer = new Misc.GameTimer();
     _waitTimers.Add(timer);
     timer.ResetAndWaitFor(duration, delegate()
     {
         timer.Reset();
         action?.Invoke();
     }, true);
     return(timer);
 }