public static float MouseDirection(SpriteClass sprite) { Vector2 mouseLocation = MouseLocationInWorld(); Vector2 direction = mouseLocation - sprite.Position; return((float)Math.Atan2(direction.Y, direction.X)); }
public Lidar(SpriteClass mountingPlatform) { _mountingPlatform = mountingPlatform; DistanceReadings = new List <float>(); for (int i = 0; i < 360; i++) { DistanceReadings.Add(float.NaN); } }
public static bool IsPickedUpForRotate(SpriteClass sprite) { MouseState mouseState = Mouse.GetState(); if (IsMouseIntersectingSprite(sprite) && mouseState.RightButton == ButtonState.Pressed) { _spritePickedUpForRotate = true; } else if (mouseState.RightButton == ButtonState.Released) { _spritePickedUpForRotate = false; } return(_spritePickedUpForRotate); }
public void DebugMousePosition(SpriteClass sprite) { Vector2 spriteOriginalPos = sprite.Position; Vector2 spriteScreenPos = Vector2.Zero; _camera.ToScreen(ref spriteOriginalPos, out spriteScreenPos); Vector2 cameraOriginalPos = _camera.Position; Vector2 cameraScreenPos = Vector2.Zero; _camera.ToScreen(ref cameraOriginalPos, out cameraScreenPos); Vector2 mouseOriginalScreenPos = MouseLocation(); Vector2 mouseInWorld = Vector2.Zero; _camera.ToWorld(ref mouseOriginalScreenPos, out mouseInWorld); Debug.WriteLine($"Checked if mouse intersects sprite. Mouse screen: {MouseLocation()}, Mouse world: {MouseLocationInWorld()}. Sprite position: {sprite.Position}. SpriteScreenPos: {spriteScreenPos} Camera pos: {_camera.Position}, Camera screenPos {cameraScreenPos}. Screen width: {Screen.Width}, Height: {Screen.Height}"); }
public static bool IsMouseIntersectingSprite(SpriteClass sprite) { return((MouseLocationInWorld() - sprite.Position).Length() < sprite.Texture.Height * sprite.TextureScale); }
public static bool IsPickedUp(SpriteClass sprite) { return(IsPickedUpForMove(sprite) || IsPickedUpForRotate(sprite)); }