コード例 #1
0
        private void HandlePushEvent(SkeletonPoint pt, bool isPlayerOne)
        {
            if (selectingBall)
            {
                return;
            }
            SeesawObject pushedBall  = null;
            PointCanvas  ballHolder  = null;
            var          heldBalls   = isPlayerOne ? game.PlayerOneHeldBalls : game.PlayerTwoHeldBalls;
            var          ballHolders = isPlayerOne ? _playerOneBallHolders : _playerTwoBallHolders;

            foreach (var holder in ballHolders)
            {
                Rect rect = holder.GetBoundaryRect();
                if (rect.Contains(pt.To2DPoint()))
                {
                    if (holder.Children.Count > 0)
                    {
                        pushedBall = (SeesawObject)holder.Children[0];
                        ballHolder = holder;
                    }
                }
            }
            if (pushedBall != null)
            {
                int index = heldBalls.IndexOf(pushedBall);
                HitBall(index, new Vector(0, 0), isPlayerOne);
            }
        }
コード例 #2
0
 /// <summary>
 /// Adds a ball to the balance
 /// </summary>
 /// <param name="ball"></param>
 /// <param name="leftSide"></param>
 public void AddBallToBalance(SeesawObject ball, bool leftSide)
 {
     if (leftSide)
     {
         LeftBalanceBalls.Add(ball);
     }
     else
     {
         RightBalanceBalls.Add(ball);
     }
 }
コード例 #3
0
        /// <summary>
        /// Pushes a ball from the HeldBalls section in the assumption that it'll trigger an animation
        /// </summary>
        /// <param name="ball">The ball to remove</param>
        public bool PushBall(SeesawObject ball)
        {
            if (ball == null)
            {
                return(false);
            }
            int ballOneIdx = this.PlayerOneHeldBalls.IndexOf(ball);
            int ballTwoIdx = this.PlayerTwoHeldBalls.IndexOf(ball);

            if (ballOneIdx > -1)
            {
                this.PlayerOneHeldBalls[ballOneIdx] = null;
            }
            else if (ballTwoIdx > -1)
            {
                this.PlayerTwoHeldBalls[ballTwoIdx] = null;
            }
            else
            {
                return(false);
            }

            return(true);
        }