Exemplo n.º 1
0
        public SpriteOrientationManager(int spriteNum, Entity entity)
        {
            this.spriteNum = spriteNum;
            this.entity    = entity;

            entity.ChangeSpriteTo(PersonSpriteSelector.GetStaticSprite(entity.Context.Assets, spriteNum, PersonOrientation.Down));
        }
Exemplo n.º 2
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;
        }