示例#1
0
        /// <summary>
        /// Funkcja sprawdza czy dany obiekt jest w kolizji
        /// z innym prostokatem:bomba, rakieta, etc
        /// </summary>
        /// <param name="quad">Prostokat z ktorym sprawdzamy kolizje.</param>
        /// <returns>Jesli kolizja wystapila choc z jednym elementem zwraca true;
        /// w przeciwnym przypadku zwraca false.</returns>
        public virtual CollisionType InCollision(Quadrangle quad)
        {
            if (this is FortressBunkerTile)
            {
            }

            if (quad == null)
            {
                return(CollisionType.None);
            }
            if (this.InSimpleCollision(quad.Center))
            {
                return(CollisionType.Altitude);
            }

            if (hitBound != null && hitBound.Intersects(quad))
            {
                return(CollisionType.Hitbound);
            }

            List <Quadrangle> list = ColisionRectangles;

            if (list != null)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    if (list[i].Intersects(quad))
                    {
                        return(CollisionType.CollisionRectagle);
                    }
                }
            }

            return(CollisionType.None);
        }
示例#2
0
 /// <summary>
 /// Sprawdzam kolizje z lotniskowce.
 /// </summary>
 /// <param name="ammunition">Rodzaj amunicji.</param>
 /// <author>Michal Ziober</author>
 protected void CheckCollisionWithCarrier(Ammunition ammunition)
 {
     if (Center.Y < 6)
     {
         if (refToLevel.AircraftTiles != null && refToLevel.AircraftTiles.Count > 0)
         {
             foreach (AircraftCarrierTile tile in refToLevel.AircraftTiles)
             {
                 if (tile.HitBound != null)
                 {
                     if (boundRectangle.Intersects(tile.HitBound))
                     {
                         refToLevel.Controller.OnTileBombed(tile, ammunition);
                         Destroy();
                     }
                 }
             }
         }
     }
 }
 private void checkIntersectionToolStripMenuItem_Click(object sender, EventArgs e)
 {
     MessageBox.Show(q1.Intersects(q2).ToString());
 }