public new void Update(GameTime gameTime) { float speedRatio = ((float)gameTime.ElapsedGameTime.TotalMilliseconds) / (1000f / 60f); Velocity += Acceleration * speedRatio; Collision.Position += Velocity * speedRatio; animationData.Update(gameTime); }
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++; }