public bool IsOffScreen(Viewport viewport, Camera camera) { if (camera == null) { return(X < 0 - Width || X > viewport.Width || Y < 0 - Height || Y > viewport.Height); } else { Vector2 screenPosition = Vector2.Transform(PrecisePosition, camera.get_transformation(viewport)); return(screenPosition.X < 0 - Width || screenPosition.X > viewport.Width || screenPosition.Y < 0 - Height || screenPosition.Y > viewport.Height); } }
public bool IsOffScreen(Viewport viewport, Camera camera) { if (camera == null) return (X < 0 - Width || X > viewport.Width || Y < 0 - Height || Y > viewport.Height); else { Vector2 screenPosition = Vector2.Transform(PrecisePosition, camera.get_transformation(viewport)); return (screenPosition.X < 0 - Width || screenPosition.X > viewport.Width || screenPosition.Y < 0 - Height || screenPosition.Y > viewport.Height); } }
public static void Update(Viewport viewport, Camera camera) { if (!enabled) return; //Vector2 halfOfViewPort = new Vector2(Game1.Game.GraphicsDevice.Viewport.Width / 2f, Game1.Game.GraphicsDevice.Viewport.Height / 2f); //Vector2 mousePosition = new Vector2(Mouse.GetState().X, Mouse.GetState().Y) + (cameraOffset); Vector2 mousePosition = new Vector2(Mouse.GetState().X, Mouse.GetState().Y); Vector2 mouseWorldPosition = Vector2.Transform(mousePosition, Matrix.Invert(camera.get_transformation(viewport))); if (Mouse.GetState().LeftButton == ButtonState.Released) { selecting = false; return; } else if (selecting == false)// && graphics.GraphicsDevice.Viewport.Bounds.Contains(new Point(Mouse.GetState().X, Mouse.GetState().Y))) { selecting = true; selectPoint1 = selectPoint2 = new Rectangle((int)mouseWorldPosition.X, (int)mouseWorldPosition.Y, 1, 1); drawPoint1 = drawPoint2 = new Rectangle((int)mousePosition.X, (int)mousePosition.Y, 1, 1); } else { selectPoint2 = new Rectangle((int)mouseWorldPosition.X, (int)mouseWorldPosition.Y, 1, 1); drawPoint2 = new Rectangle((int)mousePosition.X, (int)mousePosition.Y, 1, 1); } /*selectBox.X = selectPoint1.X; selectBox.Y = selectPoint1.Y; selectBox.Width = (int)Vector2.Distance(new Vector2(selectPoint1.X, 0), new Vector2(selectPoint2.X, 0)); selectBox.Height = (int)Vector2.Distance(new Vector2(0, selectPoint1.Y), new Vector2(0, selectPoint2.Y)); selectBox.Rotation = camera.Rotation + (float)Math.PI;*/ selectBox.Rectangle = Rectangle.Union(selectPoint1, selectPoint2); selectBox.Rotation = camera.Rotation + (float)Math.PI; drawBox = Rectangle.Union(drawPoint1, drawPoint2); }
public static void Update(Viewport viewport, Camera camera) { if (!enabled) { return; } //Vector2 halfOfViewPort = new Vector2(Game1.Game.GraphicsDevice.Viewport.Width / 2f, Game1.Game.GraphicsDevice.Viewport.Height / 2f); //Vector2 mousePosition = new Vector2(Mouse.GetState().X, Mouse.GetState().Y) + (cameraOffset); Vector2 mousePosition = new Vector2(Mouse.GetState().X, Mouse.GetState().Y); Vector2 mouseWorldPosition = Vector2.Transform(mousePosition, Matrix.Invert(camera.get_transformation(viewport))); if (Mouse.GetState().LeftButton == ButtonState.Released) { selecting = false; return; } else if (selecting == false)// && graphics.GraphicsDevice.Viewport.Bounds.Contains(new Point(Mouse.GetState().X, Mouse.GetState().Y))) { selecting = true; selectPoint1 = selectPoint2 = new Rectangle((int)mouseWorldPosition.X, (int)mouseWorldPosition.Y, 1, 1); drawPoint1 = drawPoint2 = new Rectangle((int)mousePosition.X, (int)mousePosition.Y, 1, 1); } else { selectPoint2 = new Rectangle((int)mouseWorldPosition.X, (int)mouseWorldPosition.Y, 1, 1); drawPoint2 = new Rectangle((int)mousePosition.X, (int)mousePosition.Y, 1, 1); } /*selectBox.X = selectPoint1.X; * selectBox.Y = selectPoint1.Y; * selectBox.Width = (int)Vector2.Distance(new Vector2(selectPoint1.X, 0), new Vector2(selectPoint2.X, 0)); * selectBox.Height = (int)Vector2.Distance(new Vector2(0, selectPoint1.Y), new Vector2(0, selectPoint2.Y)); * selectBox.Rotation = camera.Rotation + (float)Math.PI;*/ selectBox.Rectangle = Rectangle.Union(selectPoint1, selectPoint2); selectBox.Rotation = camera.Rotation + (float)Math.PI; drawBox = Rectangle.Union(drawPoint1, drawPoint2); }