Exemple #1
0
        public new void Update(GameTime gameTime)
        {
            float speedRatio = ((float)gameTime.ElapsedGameTime.TotalMilliseconds) / (1000f / 60f);

            Velocity           += Acceleration * speedRatio;
            Collision.Position += Velocity * speedRatio;
            animationData.Update(gameTime);
        }
Exemple #2
0
        public void Update(GameTime gameTime, KeyboardState keyState)
        {
            if (keyState.IsKeyDown(Keys.Left))
            {
                Velocity.X = -10;
            }
            if (keyState.IsKeyDown(Keys.Right))
            {
                Velocity.X = 10;
            }
            if (keyState.IsKeyUp(Keys.Left) && Keyboard.GetState().IsKeyUp(Keys.Right))
            {
                Velocity.X = 0;
            }

            float speedRatio = ((float)gameTime.ElapsedGameTime.TotalMilliseconds) / (1000f / 60f);

            Velocity           += Acceleration * speedRatio;
            Collision.Position += Velocity * speedRatio;

            FireAnimationData.Update(gameTime);

            /*
             * timer = timer.Add(gameTime.ElapsedGameTime);
             * FireSpriteStartRight.Update(gameTime);
             * FireSpriteSteadyRight.Update(gameTime);
             * FireSpriteStartLeft.Update(gameTime);
             * FireSpriteSteadyLeft.Update(gameTime);
             */
            switch (state)
            {
            case State.idle:
            {
                if (Velocity.X > 0)
                {
                    state = State.startingRight;
                    FireAnimationData.ResetAnimation();
                    framesSinceChange = 0;
                }
                else if (Velocity.X < 0)
                {
                    state = State.startingLeft;
                    FireAnimationData.ResetAnimation();
                    framesSinceChange = 0;
                }
                break;
            }

            case State.startingLeft:
            {
                if (Velocity.X > 0)
                {
                    state = State.startingRight;
                    FireAnimationData.ResetAnimation();
                    framesSinceChange = 0;
                }
                else if (Velocity.X == 0)
                {
                    state = State.idle;
                }
                else if (framesSinceChange > FireSpriteStartLeft.Frames)
                {
                    state = State.steadyLeft;
                }
                break;
            }

            case State.steadyLeft:
            {
                if (Velocity.X > 0)
                {
                    state = State.startingRight;
                    FireAnimationData.ResetAnimation();
                    framesSinceChange = 0;
                }
                else if (Velocity.X == 0)
                {
                    state = State.idle;
                }
                break;
            }

            case State.startingRight:
            {
                if (Velocity.X < 0)
                {
                    state = State.startingLeft;
                    FireAnimationData.ResetAnimation();
                    framesSinceChange = 0;
                }
                else if (Velocity.X == 0)
                {
                    state = State.idle;
                }
                else if (framesSinceChange > FireSpriteStartLeft.Frames)
                {
                    state = State.steadyRight;
                }
                break;
            }

            case State.steadyRight:
            {
                if (Velocity.X < 0)
                {
                    state = State.startingLeft;
                    FireAnimationData.ResetAnimation();
                    framesSinceChange = 0;
                }
                else if (Velocity.X == 0)
                {
                    state = State.idle;
                }
                break;
            }

            default:
            {
                state = State.idle;
                break;
            }
            }
            framesSinceChange++;
        }