public void CheckDeath(EngineRectangle er, EngineRectangle[] barriers) { EnginePoint[] points = new EnginePoint[barriers.Length]; for (int a = 0; a < points.Length; a++) { points[a] = new EnginePoint(barriers[a].X + barriers[a].Width / 2, barriers[a].Y + barriers[a].Height / 2); for (double b = er.X; b < er.X + er.Width; b += 0.5) { if ((points[a].GetDistance(b, er.Y) <= barriers[a].Height / 2) || (points[a].GetDistance(b, er.Y + er.Height - 1) <= barriers[a].Height / 2)) { this.DieRaise(true); return; } } for (double b = er.Y; b < er.Y + er.Height; b += 0.5) { if ((points[a].GetDistance(er.X, b) <= barriers[a].Height / 2) || (points[a].GetDistance(er.X + er.Width - 1, b) <= barriers[a].Height / 2)) { this.DieRaise(true); return; } } } this.DieRaise(false); }
public void GetDistanceTest() { EnginePoint ep = new EnginePoint(1.0, 2.0); double distance = ep.GetDistance(3.0, 5.0); Assert.AreEqual(Math.Sqrt(13), distance); }
public void ConstructorTest() { EnginePoint ep = new EnginePoint(5.1, 3.7); Assert.AreEqual(5.1, ep.X); Assert.AreEqual(3.7, ep.Y); }
public void CopyConstructorTest() { EnginePoint ep = new EnginePoint(1.5, 2.3); EnginePoint ep2 = new EnginePoint(ep); Assert.AreEqual(ep.X, ep2.X); Assert.AreEqual(ep.Y, ep2.Y); }
public void Constructor2Test() { EnginePoint ep = new EnginePoint(1.5, 4.2); EngineSize es = new EngineSize(5.0, 3.3); EngineRectangle er = new EngineRectangle(ep, es); Assert.AreEqual(ep.X, er.X); Assert.AreEqual(ep.Y, er.Y); Assert.AreEqual(es.Height, er.Height); Assert.AreEqual(es.Width, er.Width); Assert.AreEqual(Directions.Wrong, er.Direction); Assert.AreEqual(false, er.IsBarrier); }
public bool Overlap(EngineRectangle er, EngineRectangle[] forbiden) { EnginePoint[] edges = new EnginePoint[4]; edges[0] = new EnginePoint(er.X, er.Y); edges[1] = new EnginePoint(er.X + er.Width - 1, er.Y); edges[2] = new EnginePoint(er.X, er.Y + er.Height - 1); edges[3] = new EnginePoint(er.X + er.Width - 1, er.Y + er.Height - 1); for (int a = 0; a < forbiden.Length; a++) { for (int b = 0; b < edges.Length; b++) { if ((edges[b].X >= forbiden[a].X) && (edges[b].X < (forbiden[a].X + forbiden[a].Width)) && (edges[b].Y >= forbiden[a].Y) && (edges[b].Y < (forbiden[a].Y + forbiden[a].Height))) { return(true); } } } return(false); }