public Level(Texture2D background, Texture2D collisionTexture, Vector2 startPosition, int startAnimation) { Background = background; Collision = new Collision(collisionTexture); StartPosition = startPosition; StartAnimation = startAnimation; }
public void Update(float deltaTime, Collision collision) { KeyboardState keyboardState = Keyboard.GetState(); Boolean moving = false; float multiplier = 1.5f; Vector2 desiredPosition = Position; if (keyboardState.IsKeyDown(Keys.Space)) multiplier = 2.3f; if (keyboardState.IsKeyDown(Keys.Left)) { Sprite.AnimationId = 3; moving = true; desiredPosition.X -= 100f * deltaTime * multiplier; } if (keyboardState.IsKeyDown(Keys.Right)) { Sprite.AnimationId = 2; moving = true; desiredPosition.X += 100f * deltaTime * multiplier; } if (keyboardState.IsKeyDown(Keys.Up)) { Sprite.AnimationId = 1; moving = true; desiredPosition.Y -= 100f * deltaTime * multiplier; } if (keyboardState.IsKeyDown(Keys.Down)) { Sprite.AnimationId = 0; moving = true; desiredPosition.Y += 100f * deltaTime * multiplier; } //If the sprite is moving, and the desired location is valid, we move it and update animation if ((moving) && (!collision.DoesCollide(desiredPosition))) { Position = desiredPosition; Sprite.UpdateAnimation(deltaTime * multiplier); } else Sprite.FrameIndex = 1; }