private Vector2 DoMouseMovement(ArenaCamera camera, bool confineCursorToScreen) { var newPos = new Vector2(inputHelper.MouseState.X, inputHelper.MouseState.Y); if (confineCursorToScreen) { newPos.X = MathHelper.Clamp(newPos.X, 0, NoisEvader.ScreenBounds.Width); newPos.Y = MathHelper.Clamp(newPos.Y, 0, NoisEvader.ScreenBounds.Height); } return(camera.MouseToWorld(newPos)); }
public MenuScene() { Camera = new ArenaCamera(); arena = new ArenaCircle(); arena.Circle.BorderColor = Color.CornflowerBlue; arena.Circle.FillColor = Color.White; arena.Circle.LineThickness = 3; arena.GlowEnabled = true; arena.Hitbox.Inverted = true; rings = new OuterRings(new Color(0x37, 0x71, 0xc8), arena.Circle); }
protected override void UpdatePosition(LevelTime levelTime, CircleSprite arenaCircle, ArenaCamera camera, bool confineCursorToScreen) { // TODO: Allow rebinding if (HasKeyboardMovement()) { Center = DoKeyboardMovement(levelTime, inputHelper.KeyboardState); } else if (HasMouseMovement()) { Center = DoMouseMovement(camera, confineCursorToScreen); } oobShadow.Center = camera.MouseToWorld(new Vector2(inputHelper.MouseState.X, inputHelper.MouseState.Y)); KeepPlayerInbounds(arenaCircle, Center); SetCenters(Center); }