示例#1
0
        private void SetSprites()
        {
            animations = new Dictionary <AnimationType, SpritenameAnimation>();

            animations.Add(AnimationType.HELMET_IDLE_NORTH, new SpritenameAnimation(AnimationType.HELMET_IDLE_NORTH.ToString(), new string[] { "IdleBack" }, 0.7f, false));
            animations.Add(AnimationType.HELMET_IDLE_EAST, new SpritenameAnimation(AnimationType.HELMET_IDLE_EAST.ToString(), new string[] { "IdleSide" }, 0.7f, false));
            animations.Add(AnimationType.HELMET_IDLE_SOUTH, new SpritenameAnimation(AnimationType.HELMET_IDLE_SOUTH.ToString(), new string[] { "IdleFront" }, 0.7f, false));
            animations.Add(AnimationType.HELMET_IDLE_WEST, new SpritenameAnimation(AnimationType.HELMET_IDLE_WEST.ToString(), new string[] { "IdleSide" }, 0.7f, false, true));

            animations.Add(AnimationType.HELMET_WALK_NORTH, new SpritenameAnimation(AnimationType.HELMET_WALK_NORTH.ToString(), new string[] { "WalkBack1", "WalkBack2" }, 0.7f));
            animations.Add(AnimationType.HELMET_WALK_EAST, new SpritenameAnimation(AnimationType.HELMET_WALK_EAST.ToString(), new string[] { "WalkSide1", "WalkSide2" }, 0.7f));
            animations.Add(AnimationType.HELMET_WALK_SOUTH, new SpritenameAnimation(AnimationType.HELMET_WALK_SOUTH.ToString(), new string[] { "WalkFront1", "WalkFront2" }, 0.7f));
            animations.Add(AnimationType.HELMET_WALK_WEST, new SpritenameAnimation(AnimationType.HELMET_WALK_WEST.ToString(), new string[] { "WalkSide1", "WalkSide2" }, 0.7f, true, true));

            animations.Add(AnimationType.NOHELMET_IDLE_NORTH, new SpritenameAnimation(AnimationType.NOHELMET_IDLE_NORTH.ToString(), new string[] { "2IdleBack" }, 0.7f, false));
            animations.Add(AnimationType.NOHELMET_IDLE_EAST, new SpritenameAnimation(AnimationType.NOHELMET_IDLE_EAST.ToString(), new string[] { "2IdleSide" }, 0.7f, false));
            animations.Add(AnimationType.NOHELMET_IDLE_SOUTH, new SpritenameAnimation(AnimationType.NOHELMET_IDLE_SOUTH.ToString(), new string[] { "2IdleFront" }, 0.7f, false));
            animations.Add(AnimationType.NOHELMET_IDLE_WEST, new SpritenameAnimation(AnimationType.NOHELMET_IDLE_WEST.ToString(), new string[] { "2IdleSide" }, 0.7f, false, true));

            animations.Add(AnimationType.NOHELMET_WALK_NORTH, new SpritenameAnimation(AnimationType.NOHELMET_WALK_NORTH.ToString(), new string[] { "2WalkBack1", "2WalkBack2" }, 0.7f));
            animations.Add(AnimationType.NOHELMET_WALK_EAST, new SpritenameAnimation(AnimationType.NOHELMET_WALK_EAST.ToString(), new string[] { "2WalkSide1", "2WalkSide2" }, 0.7f));
            animations.Add(AnimationType.NOHELMET_WALK_SOUTH, new SpritenameAnimation(AnimationType.NOHELMET_WALK_SOUTH.ToString(), new string[] { "2WalkFront1", "2WalkFront2" }, 0.7f));
            animations.Add(AnimationType.NOHELMET_WALK_WEST, new SpritenameAnimation(AnimationType.NOHELMET_WALK_WEST.ToString(), new string[] { "2WalkSide1", "2WalkSide2" }, 0.7f, true, true));

            currentAnimationType = AnimationType.HELMET_IDLE_SOUTH;
            currentAnimation     = animations[currentAnimationType];
            prevFrameIndex       = 0;
        }
示例#2
0
        public void AddAnimation(string state, List <string> spriteNames, float fps, bool looping)
        {
            animations.Add(state, new SpritenameAnimation(state, spriteNames.ToArray(), 1 / fps, looping));

            currentAnimationState = state;
            currentAnimation      = animations[currentAnimationState];
            prevFrameIndex        = 0;
        }
示例#3
0
 public FurnitureAnimation(Dictionary <string, SpritenameAnimation> incomingAnimations)
 {
     animations = incomingAnimations;
     if (string.IsNullOrEmpty(currentAnimationState))
     {
         currentAnimationState = animations.Keys.First();
         currentAnimation      = animations[currentAnimationState];
         prevFrameIndex        = 0;
     }
 }
        /// <summary>
        /// Add animation to furniture. First animation added will be default for sprites e.g. ghost image when placing furniture.
        /// </summary>
        public void AddAnimation(string state, List <string> spriteNames, float fps, bool looping, bool valueBased)
        {
            animations.Add(state, new SpritenameAnimation(state, spriteNames.ToArray(), 1 / fps, looping, false, valueBased));

            // set default state to first state entered - most likely "idle"
            if (string.IsNullOrEmpty(currentAnimationState))
            {
                currentAnimationState = state;
                currentAnimation      = animations[currentAnimationState];
                prevFrameIndex        = 0;
            }
        }
示例#5
0
        /// <summary>
        /// Set the animation state. Will only have an effect if stateName is different from current animation stateName.
        /// </summary>
        public void SetState(string stateName)
        {
            if (animations.ContainsKey(stateName) == false)
            {
                Debug.ULogErrorChannel("Animation", "SetState tries to set " + stateName + " which doesn't exist.");
                return;
            }

            if (stateName != currentAnimationState)
            {
                currentAnimationState = stateName;
                currentAnimation      = animations[currentAnimationState];
                currentAnimation.Play();
                ShowSprite(currentAnimation.CurrentFrameName);
            }
        }
        /// <summary>
        /// Set the animation state. Will only have an effect if stateName is different from current animation stateName.
        /// </summary>
        public void SetState(string stateName)
        {
            if (animations.ContainsKey(stateName) == false)
            {
                return;
            }

            if (stateName == currentAnimationState)
            {
                return;
            }

            currentAnimationState = stateName;
            currentAnimation      = animations[currentAnimationState];
            currentAnimation.Play();
            ShowSprite(currentAnimation.CurrentFrameName);
        }
示例#7
0
        /// <summary>
        /// Set the animation state. Will only have an effect if stateName is different from current animation stateName.
        /// </summary>
        public void SetState(string stateName)
        {
            if (stateName == currentAnimationState)
            {
                return;
            }

            SpritenameAnimation animation;

            if (animations.TryGetValue(stateName, out animation) == false)
            {
                return;
            }

            currentAnimationState = stateName;
            currentAnimation      = animation;
            currentAnimation.Play();
            ShowSprite(currentAnimation.CurrentFrameName);
        }
示例#8
0
        public void Update(float deltaTime)
        {
            int newAnimation = (int)character.CharFacing;

            if (character.IsWalking)
            {
                newAnimation += 10;
            }

            // TODO: What is the acceptable amount of O2 gas pressure?
            // Using .15 from Need.cs for now.
            if (character.CurrTile.GetGasPressure("O2") >= 0.15f)
            {
                newAnimation += 100; // Remove helmet
            }

            // check if we need to switch animations
            if (newAnimation != (int)currentAnimationType)
            {
                currentAnimationType = (AnimationType)newAnimation;
                currentAnimation     = animations[currentAnimationType];

                // Make sure we update the sprite
                prevFrameIndex = -1;

                if (currentAnimation.FlipX == true && renderer.flipX == false)
                {
                    renderer.flipX = true;
                }
                else if (currentAnimation.FlipX == false && renderer.flipX == true)
                {
                    renderer.flipX = false;
                }
            }

            currentAnimation.Update(deltaTime * character.MovementSpeed);

            if (prevFrameIndex != currentAnimation.CurrentFrame)
            {
                ShowSprite(currentAnimation.CurrentFrameName);
                prevFrameIndex = currentAnimation.CurrentFrame;
            }
        }
        public SpritenameAnimation Clone()
        {
            SpritenameAnimation returnFA = new SpritenameAnimation(State, frames, delay, loops, FlipX, ValueBased);

            return(returnFA);
        }
示例#10
0
        public SpritenameAnimation Clone()
        {
            SpritenameAnimation returnFA = new SpritenameAnimation(State, frames, delay, loops);

            return(returnFA);
        }