Пример #1
0
        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);
        }
Пример #2
0
 /// <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));
 }