static public bool Camera(KeyboardState kbd, Camera camera, int msticks) { Vector3 cameraActionRotation = Vector3.Zero; var angle = (float)msticks * 0.075f; if (kbd.HasBeenPressed(Keys.NumPad4)) { cameraActionRotation.Z = -angle; } if (kbd.HasBeenPressed(Keys.NumPad6)) { cameraActionRotation.Z = angle; } if (kbd.IsCurrentlyPressed(Keys.NumPad5, Keys.NumPad2) != null) { cameraActionRotation.X = -angle; } if (kbd.HasBeenPressed(Keys.NumPad8)) { cameraActionRotation.X = angle; } if (kbd.IsCurrentlyPressed(Keys.NumPad7, Keys.Q) != null) { cameraActionRotation.Y = -angle; } if (kbd.IsCurrentlyPressed(Keys.NumPad9, Keys.E) != null) { cameraActionRotation.Y = angle; } if (cameraActionRotation.LengthSquared > 0) { camera.Rotate(cameraActionRotation); return(true); } else { return(false); } }
static public bool Zoom(KeyboardState kbd, Zoom zoom, int msticks) { float adjustment = 1.0f + ((float)msticks * 0.002f); bool changed = false; if (kbd.IsCurrentlyPressed(Keys.Add, Keys.Z) != null) { zoom.Multiply(adjustment); changed = true; } if (kbd.IsCurrentlyPressed(Keys.Subtract, Keys.X) != null) { zoom.Multiply(1.0f / adjustment); changed = true; } float newzoom = 0; if (kbd.HasBeenPressed(Keys.D1)) { newzoom = zoom.ZoomMax; } if (kbd.HasBeenPressed(Keys.D2)) { newzoom = 100; // Factor 3 scale } if (kbd.HasBeenPressed(Keys.D3)) { newzoom = 33; } if (kbd.HasBeenPressed(Keys.D4)) { newzoom = 11F; } if (kbd.HasBeenPressed(Keys.D5)) { newzoom = 3.7F; } if (kbd.HasBeenPressed(Keys.D6)) { newzoom = 1.23F; } if (kbd.HasBeenPressed(Keys.D7)) { newzoom = 0.4F; } if (kbd.HasBeenPressed(Keys.D8)) { newzoom = 0.133F; } if (kbd.HasBeenPressed(Keys.D9)) { newzoom = zoom.ZoomMin; } if (newzoom != 0) { System.Diagnostics.Debug.WriteLine("Zoom to " + newzoom); zoom.GoTo(newzoom, -1); changed = true; } return(changed); }