예제 #1
0
파일: Ball.cs 프로젝트: i2um1/VolleyBall
 void HitTheGround(double x, double y, double width, double height, Score score)
 {
     if (y + this.RealHeight() > height)
         if (2.0 * x + this.RealWidth() < width)
             ++score.Player2;
         else
             ++score.Player1;
 }
예제 #2
0
파일: Ball.cs 프로젝트: i2um1/VolleyBall
        public void Move(double width, double height, Score score, Fence fence, Player[] players)
        {
            Velocity.Y = PowerOfAttraction();

            double x = this.Left() + Speed * Velocity.X, y = this.Top() + Speed * Velocity.Y;
            ImpactOnTheBorder(x, y, width, height);
            HitTheGround(x, y, width, height, score);

            this.SetLeft(x);
            this.SetTop(y);

            double nextX = this.Left() + Speed * Velocity.X, nextY = this.Top() + Speed * PowerOfAttraction();
            CollisionWithTheFence(nextX, nextY, fence);
            for (int i = 0; i < players.Length; ++i)
                CollisionWithThePlayer(nextX, nextY, players[i]);
        }
예제 #3
0
파일: Game.cs 프로젝트: i2um1/VolleyBall
        void Reset(bool isNewGame = true, bool queueFirstPlayer = true)
        {
            if (isNewGame)
                score = new Score();
            UpdateResult();

            players[0].SetLeft((fence.Left() - players[0].RealWidth()) / 2.0);
            players[0].SetTop(canvas.RealHeight() - players[0].RealHeight());
            players[1].SetLeft(fence.Left() * 1.5 + fence.Width - players[1].RealWidth() / 2.0);
            players[1].SetTop(canvas.RealHeight() - players[1].RealHeight());
            ball.SetLeft(players[0].RealWidth() + (queueFirstPlayer ? fence.Left() / 2.0 - ball.RealWidth() : fence.Left() + ball.RealWidth()));
            ball.SetTop(canvas.RealHeight() - players[1].RealHeight() - ball.RealHeight() * 1.5);
            players[0].Floor = players[0].Top();
            players[1].Floor = players[1].Top();

            players[0].VelocityJump = players[1].VelocityJump = 0;
            players[0].IsJump = players[1].IsJump = false;
            players[0].Direction = players[1].Direction = Direction.None;

            ball.Velocity = new Vector(0, 0);
        }