コード例 #1
0
ファイル: Board.cs プロジェクト: Teyras/Bounce
 public void SteerPlayer(Direction direction)
 {
     if (!Player.SteeringStack.Contains(direction))
     {
         Player.SteeringStack.AddLast(direction);
         if (!Player.Moving && Player.Remaining == 0)
         {
             Player.StartMove(direction);
         }
         else
         {
             if (Player.Moving)
             {
                 Player.Stop(checkedSpriteDistance(Player, calculateResidualSteps(Player)));
             }
         }
     }
 }
コード例 #2
0
ファイル: Board.cs プロジェクト: Teyras/Bounce
 public void UnsteerPlayer(Direction direction)
 {
     if (Player.SteeringStack.Contains(direction))
     {
         Player.SteeringStack.Remove(direction);
         if (Player.SteeringStack.Count > 0)
         {
             if (Player.Direction == direction)
             {
                 Player.Stop(checkedSpriteDistance(Player, calculateResidualSteps(Player)));
             }
             if (Player.Remaining == 0)
             {
                 Player.StartMove(Player.SteeringStack.Last.Value);
             }
         }
         else
         {
             Player.Stop(checkedSpriteDistance(Player, calculateResidualSteps(Player)));
         }
     }
 }
コード例 #3
0
ファイル: Board.cs プロジェクト: Teyras/Bounce
        public void MovePlayer()
        {
            if (Player.Moving)
            {
                if (checkedSpriteDistance(Player, 1) == 0)
                {
                    Player.Stop(0);
                }
                else
                {
                    Player.Move(1);
                }
            }
            else if (Player.Remaining > 0)
            {
                Player.Move(1);
                if (Player.Remaining == 0 && Player.SteeringStack.Count > 0)
                {
                    Player.StartMove(Player.SteeringStack.Last.Value);
                }
            }
            Field playerField = crossedField(Player.X, Player.Y);

            if (!playerField.Full && !Player.Trail.Contains(playerField))
            {
                Player.Trail.Add(playerField);
            }
            else if (playerField.Full)
            {
                if (Player.Trail.Count > 0)
                {
                    closeTrail();
                }
                Player.BaseField = playerField;
            }
            checkBallCollisions();
            checkMonsterCollisions();
        }