Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public void ConstructorTest()
        {
            EnginePoint ep = new EnginePoint(5.1, 3.7);

            Assert.AreEqual(5.1, ep.X);
            Assert.AreEqual(3.7, ep.Y);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }