public void Update(GameTime gameTime) { float time = (float)gameTime.ElapsedGameTime.TotalSeconds; CameraInputs inputs = CameraInputs.Instance; if (inputs.IsZoomIn()) { Zoom += time; } if (inputs.IsZoomOut()) { Zoom -= time; } Transform = Matrix.CreateTranslation(-Position.X, -Position.Y, 0f) * Matrix.CreateRotationZ(Rotation) * Matrix.CreateTranslation(Origin.X, Origin.Y, 0f) * Matrix.CreateScale(Zoom); Origin = ScreenCenter / Zoom; Vector2 position = Position; position.X = Position.X + (Focus.X - Position.X) * MoveSpeed * time; position.Y = Position.Y + (Focus.Y - Position.Y) * MoveSpeed * time; Position = position; }
public void Update(GameTime gameTime) { CameraInputs inputs = CameraInputs.Instance; float time = (float)gameTime.ElapsedGameTime.TotalSeconds; float speed = time * 500f; Vector2 movement = Vector2.Zero; if (inputs.IsMoveLeft()) { movement.X -= speed; } if (inputs.IsMoveRight()) { movement.X += speed; } if (inputs.IsMoveUp()) { movement.Y -= speed; } if (inputs.IsMoveDown()) { movement.Y += speed; } if (inputs.IsZoomIn()) { this.Zoom += time; } if (inputs.IsZoomOut()) { this.Zoom -= time; } if (inputs.IsCameraReset()) { Reset(); movement = Vector2.Zero; } this.Move(movement); }