/// <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); }
/// <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()); }