Esempio n. 1
0
        public void HorizontalTimeOfCollisionTests()
        {
            Ball           b1 = new Ball(1.0, 1.0, 5.0, 5.0, 1.0, 0.0);
            Ball           b2 = new Ball(1.0, 1.0, 5.0, 5.0, -10.0, 0.0);
            HorizontalWall h1 = new HorizontalWall(10.0);
            HorizontalWall h2 = new HorizontalWall(-10.0);

            VerifyTimeOfCollision(b1, h1, true);
            VerifyTimeOfCollision(b1, h2, false);
            VerifyTimeOfCollision(b2, h1, false);
            VerifyTimeOfCollision(b2, h2, true);
        }
Esempio n. 2
0
        public void VerifyTimeOfCollision(Ball b1, HorizontalWall h, bool expectedToCollide)
        {
            double t1 = h.TimeOfCollision(b1);

            if (t1 > 0.0)
            {
                Assert.IsTrue(expectedToCollide);
                double y1 = b1.Y + b1.Vy * t1 + 0.5 * Globals.Gravity * t1 * t1;

                if (h.Y > b1.Y)
                {
                    Assert.AreEqual(h.Y - b1.Radius, y1, 0.01);
                }
                else
                {
                    Assert.AreEqual(h.Y + b1.Radius, y1, 0.01);
                }
            }
            else
            {
                Assert.IsFalse(expectedToCollide);
            }
        }