public static bool intersectCon(CollidingAdvancedSprite CAS, Vector2 pointa, Vector2 pointb, Vector2 _magicPntSizeOnScreen, GameCam cam) { float x = (((CAS.BoundingBox.Y + cam.Location.Y) - pointa.Y) / ((pointb.Y - pointa.Y) / (pointb.X - pointa.X))) + pointa.X; if (x + (_magicPntSizeOnScreen.Y / 8) >= CAS.BoundingBox.X + cam.Location.X && x - (_magicPntSizeOnScreen.Y / 8) <= CAS.BoundingBox.X + cam.Location.X + CAS.BoundingBox.Width) { return(true); } x = (((CAS.BoundingBox.Y + cam.Location.Y + CAS.BoundingBox.Height) - pointa.Y) / ((pointb.Y - pointa.Y) / (pointb.X - pointa.X))) + pointa.X; if (x + (_magicPntSizeOnScreen.Y / 8) >= CAS.BoundingBox.X + cam.Location.X && x - (_magicPntSizeOnScreen.Y / 8) <= CAS.BoundingBox.X + cam.Location.X + CAS.BoundingBox.Width) { return(true); } x = ((pointb.Y - pointa.Y) / (pointb.X - pointa.X)) * (CAS.BoundingBox.X + cam.Location.X - pointa.X) + pointa.Y; if (x + (_magicPntSizeOnScreen.Y / 8) >= CAS.BoundingBox.Y + cam.Location.Y && x - (_magicPntSizeOnScreen.Y / 8) <= CAS.BoundingBox.Y + cam.Location.Y + CAS.BoundingBox.Height) { return(true); } return(false); }
/// <summary> /// Collision detection for Magic Points and other objects /// </summary> /// <param name="CAS">Other Object</param> /// <param name="pntSizeOnScreen">Size of Point on Screen</param> /// <param name="cam">Camera Object</param> /// <returns>If object is colliding with Point</returns> public bool intersects(CollidingAdvancedSprite CAS, Vector2 pntSizeOnScreen, ICamera cam) { _tempIntersects = new Rectangle((int)Location.X - (int)cam.Location.X - (int)pntSizeOnScreen.X / 2, (int)Location.Y - (int)cam.Location.Y - (int)pntSizeOnScreen.Y / 2, (int)pntSizeOnScreen.X, (int)pntSizeOnScreen.Y); return(CAS.BoundingBox.Intersects(_tempIntersects)); }