예제 #1
0
        public void UpdateOrientation(Vector3 posChange)
        {
            Context           ctx            = entity.Context;
            PersonOrientation?newOrientation = GetOrientation(posChange);
            bool newWalking = newOrientation != null;

            if (newWalking && (!Walking || newOrientation.Value != Orientation))
            {
                TimedSpriteSet newSprite = PersonSpriteSelector.GetWalkingSpriteSet(ctx.Assets, spriteNum, newOrientation.Value);
                Orientation = (PersonOrientation)newOrientation;
                entity.ChangeSpriteTo(newSprite);
            }
            else if (!newWalking && Walking)
            {
                Sprite newSprite = PersonSpriteSelector.GetStaticSprite(ctx.Assets, spriteNum, Orientation);
                entity.ChangeSpriteTo(newSprite);
            }
            Walking = newWalking;
        }