コード例 #1
0
ファイル: PlayerModel.cs プロジェクト: daniellee/BallBounce
        public void SetBallVelocityAfterCollision(Ball ball)
        {
            ChangeVelocityToUp(ball);
            _zones = new ShipZones(_ship);

            if(_zones.HitFarthestLeftZone(ball))
            {
                ball.Velocity.X = -3.5f;
            }
            else if(_zones.HitFarthestRightZone(ball))
            {
                ball.Velocity.X = 3.5f;
            }
            else if (_zones.HitFarLeftZone(ball))
            {
                ball.Velocity.X = -2.0f;
            }
            else if (_zones.HitFarRightZone(ball))
            {
                ball.Velocity.X = 2.0f;
            }
            else if (_zones.HitMiddleLeftZone(ball))
            {
                ball.Velocity.X = -1.0f;
            }
            else if (_zones.HitMiddleRightZone(ball))
            {
                ball.Velocity.X = 1.0f;
            }
            else if(_zones.HitCentreRightZone(ball))
            {
                ball.Velocity.X = 0.5f;
            }
        }
コード例 #2
0
ファイル: PlayerModel.cs プロジェクト: daniellee/BallBounce
 private static void ChangeVelocityToUp(Ball ball)
 {
     if (Math.Sign(ball.Velocity.Y) >= 0)
         ball.Velocity.Y = -(ball.Velocity.Y);
 }
コード例 #3
0
 public BallAndBrickCollisionHandler(Ball ball)
 {
     _ball = ball;
 }
コード例 #4
0
ファイル: ShipZones.cs プロジェクト: daniellee/BallBounce
 public bool HitMiddleLeftZone(Ball ball)
 {
     return ball.Position.X < (_ship.Left + _shipSection * 3);
 }
コード例 #5
0
ファイル: ShipZones.cs プロジェクト: daniellee/BallBounce
 public bool HitMiddleRightZone(Ball ball)
 {
     return ball.Position.X > (_ship.Right - _shipSection * 3);
 }
コード例 #6
0
ファイル: ShipZones.cs プロジェクト: daniellee/BallBounce
 public bool HitFarthestLeftZone(Ball ball)
 {
     return ball.Position.X < (_ship.Left + _shipSection);
 }
コード例 #7
0
ファイル: ShipZones.cs プロジェクト: daniellee/BallBounce
 public bool HitFarthestRightZone(Ball ball)
 {
     return ball.Position.X > (_ship.Right - _shipSection);
 }
コード例 #8
0
ファイル: ShipZones.cs プロジェクト: daniellee/BallBounce
 public bool HitCentreRightZone(Ball ball)
 {
     return ball.Position.X > (_ship.Center.X);
 }
コード例 #9
0
ファイル: BallsModel.cs プロジェクト: daniellee/BallBounce
 private void Remove(Ball ball)
 {
     _balls.Remove(ball);
 }
コード例 #10
0
ファイル: BallsModel.cs プロジェクト: daniellee/BallBounce
        private bool IsBallDead(Ball ball)
        {
            Rectangle viewport = _world.GetViewport();

            return !viewport.Contains(new Point(
                            (int)ball.Position.X,
                            (int)ball.Position.Y));
        }
コード例 #11
0
ファイル: BallsModel.cs プロジェクト: daniellee/BallBounce
 private void HandleBallDeath(Ball ball)
 {
     Remove(ball);
     if (_balls.Count == 0)
         _world.HandleLostLife();
 }
コード例 #12
0
ファイル: BallsModel.cs プロジェクト: daniellee/BallBounce
 public void Add(Ball ball)
 {
     _balls.Add(ball);
 }