예제 #1
0
        public void Ball_TestBounceOnWallHit()
        {
            RectangleF gf = GameManager.gameField;
            SizeF target;

            //Test left wall bounce
            Ball b = new RegularBall(new PointF(gf.Left + 1.0f, gf.Bottom / 2));
            b.moveVector = new SizeF(-1.0f, 1.0f);
            target = new SizeF(b.moveVector.Width * -1, b.moveVector.Height);
            b.Update();
            b.Update();
            b.Update();
            Assert.AreEqual(target, b.moveVector);

            //Test right wall bounce
            b = new RegularBall(new PointF(gf.Right - 1.0f, gf.Bottom / 2));
            b.moveVector = new SizeF(1.0f, 1.0f);
            target = new SizeF(b.moveVector.Width * -1, b.moveVector.Height);
            b.Update();
            b.Update();
            b.Update();
            Assert.AreEqual(target, b.moveVector);

            //Test top wall bounce
            b = new RegularBall(new PointF(gf.Right / 2, gf.Top - 1.0f));
            b.moveVector = new SizeF(1.0f, -1.0f);
            target = new SizeF(b.moveVector.Width, b.moveVector.Height * -1);
            b.Update();
            b.Update();
            b.Update();
            Assert.AreEqual(target, b.moveVector);
        }
예제 #2
0
 public void Ball_TestBounceOnBrickHit()
 {
     PointF origin = new PointF(80, 220);
     Ball b = new RegularBall(origin);
     b.moveVector = new SizeF(1, -1.0f);
     b.Update();
     b.Update();
     Assert.AreEqual(new SizeF(1, 1.0f), b.moveVector);
 }
예제 #3
0
        public void Brick_TestBonusHit()
        {
            int seed = 131415;
            GameManager.Init(null, 10, 10, new Menu(), seed);

            Ball b = new RegularBall(GameManager.bricks[3, 9].GetPosition());
            b.moveVector = new SizeF(0, -1.0f);
            b.Update();
            b.Update();
            Assert.AreEqual(new SizeF(0, 1.0f), b.moveVector);
            Assert.AreEqual(2, GameManager.score);
        }
예제 #4
0
        public void Brick_TestDestroyOnHit()
        {
            int seed = 131415;
            GameManager.Init(null, 10, 10, new Menu(), seed);

            Ball b = new RegularBall(GameManager.bricks[9,9].GetPosition());
            b.moveVector = new SizeF(0, -1.0f);

            //Move the ball towards the brick to hit it
            b.Update();
            b.Update();

            //Check if it is removed from the game/brick array
            Assert.AreEqual(null, GameManager.bricks[9, 9]);
        }
예제 #5
0
        public void Ball_TestBounceOnPadHit()
        {
            RectangleF playerBox = GameManager.player.boundingBox;

            //Position the ball 1 pixel above the player
            Ball b = new RegularBall(new PointF(GameManager.player.GetPosition().X, GameManager.player.GetPosition().Y - 1));

            //Test slow ball
            b.moveVector = new SizeF(0, 1);
            SizeF expected = this.calculateSpeed(ref b, playerBox);
            b.Update();
            Assert.AreEqual(expected, b.moveVector);

            b = new RegularBall(new PointF(GameManager.player.GetPosition().X, GameManager.player.GetPosition().Y - 1));

            //Test fast ball (maximum speed)
            b.moveVector = new SizeF(0, playerBox.Height);
            expected = calculateSpeed(ref b, playerBox);
            b.Update();
            Assert.AreEqual(expected, b.moveVector);
        }
예제 #6
0
        public void Ball_TestMovement()
        {
            //Set start position
            PointF origin = new PointF(5.0f, 5.0f);

            //Set move vector
            SizeF move = new SizeF(1.0f, 1.0f);

            //Target after one update.
            PointF target = new PointF(origin.X + move.Width, origin.Y + move.Height);

            //Move the ball 1 'tick'
            Ball b = new RegularBall(origin);
            b.moveVector = move;
            b.Update();

            Assert.AreEqual(target, b.GetPosition());
        }
예제 #7
0
        public void Ball_TestDie()
        {
            Ball b = new RegularBall(new PointF(20, GameManager.gameField.Bottom - 1));
            int start = GameManager.numberOfLives;
            b.moveVector = new SizeF(0, 1.0f);
            b.Update();
            //Test if a life is taken away
            Assert.AreEqual(start - 1, GameManager.numberOfLives);

            b.Update();
            b.Update();
            //check if game has restarted (3 lives again)
            Assert.AreEqual(start, GameManager.numberOfLives);
        }