Exemple #1
0
        private void OnAnimationLoopFinished(SpriteAnimationType animType, SpriteAnimationPlaybackState oldPlaybackState, SpriteAnimationPlaybackState newPlaybackState)
        {
            bool isAttackAnimation = _attackAnimations.Contains(animType);

            if (isAttackAnimation)
            {
                if (oldPlaybackState == SpriteAnimationPlaybackState.Playing && newPlaybackState != SpriteAnimationPlaybackState.Playing)
                {
                    OwliverState newState = CurrentState;
                    newState.MovementMode = OwliverMovementMode.Walking;
                    ChangeState(ref newState);
                }
            }
        }
Exemple #2
0
        public override void Update(float deltaSeconds)
        {
            base.Update(deltaSeconds);

            SpriteAnimationPlaybackState oldPlaybackState = ActiveAnimation.State.PlaybackState;

            ActiveAnimation.Update(deltaSeconds);
            SpriteAnimationPlaybackState newPlaybackState = ActiveAnimation.State.PlaybackState;

            if (newPlaybackState != oldPlaybackState)
            {
                OnAnimationPlaybackStateChanged?.Invoke(ActiveAnimationType, oldPlaybackState, newPlaybackState);
            }

            Global.Game.DebugDrawCommands.Add(view =>
            {
                SpatialData worldSpatial = this.GetWorldSpatialData();
                view.DrawAABB(worldSpatial.AbsoluteAABB, new Color(0xdd, 0x99, 0x44));
            });
        }