コード例 #1
0
        public void PlayerJumpHeightKeepsIncreasingButtonHeld()
        {
            GameObject player = game.GetPlayer();

            player.GetComponent <TwoDTools.PlayerController2D>().Awake();

            player.GetComponent <TwoDTools.PlayerJump>().Start();
            player.GetComponent <TwoDTools.PlayerWallJump>().Start();
            TwoDTools.PlayerController2DInput input = player.GetComponent <TwoDTools.PlayerController2DInput>();
            // Initial Jump
            Assert.AreEqual(input.JumpButtonHeld(), false);
            player.GetComponent <TwoDTools.PlayerState>().SetIsTouchingFloor(true);
            input.SetJumpButtonPressed();
            input.SetJumpButtonHeld();

            Assert.AreEqual(input.JumpButtonHeld(), true);
            player.GetComponent <TwoDTools.PlayerJump>().JumpUpdate();
            player.GetComponent <TwoDTools.PlayerJump>().JumpFixedUpdate();
            player.GetComponent <TwoDTools.PlayerController2D>().ApplyGravtiy();
            player.GetComponent <TwoDTools.PlayerState>().SetIsTouchingFloor(false);

            Assert.Greater(player.GetComponent <TwoDTools.PlayerController2D>().currentVelocity.y, 0);
            float previous = player.GetComponent <TwoDTools.PlayerController2D>().currentVelocity.y;

            // Still Held
            input.SetJumpButtonHeld();
            Assert.AreEqual(input.JumpButtonHeld(), true);
            player.GetComponent <TwoDTools.PlayerJump>().JumpUpdate();
            player.GetComponent <TwoDTools.PlayerJump>().JumpFixedUpdate();
            player.GetComponent <TwoDTools.PlayerController2D>().ApplyGravtiy();
            Assert.Greater(previous, player.GetComponent <TwoDTools.PlayerController2D>().currentVelocity.y);
            Assert.Greater(player.GetComponent <TwoDTools.PlayerController2D>().currentVelocity.y, 0);

            // Let Go
            input.ResetInput();
            input.SetJumpButtonLetGo();
            Assert.AreEqual(input.JumpButtonHeld(), false);
            Assert.AreEqual(input.JumpButtonLetGo(), true);
            player.GetComponent <TwoDTools.PlayerJump>().JumpUpdate();
            player.GetComponent <TwoDTools.PlayerJump>().JumpFixedUpdate();
            player.GetComponent <TwoDTools.PlayerController2D>().ApplyGravtiy();
            Assert.LessOrEqual(player.GetComponent <TwoDTools.PlayerController2D>().currentVelocity.y, 1);

            input.ResetInput();
            Assert.AreEqual(input.JumpButtonHeld(), false);
            Assert.AreEqual(input.JumpButtonLetGo(), false);

            player.GetComponent <TwoDTools.PlayerJump>().JumpUpdate();
            player.GetComponent <TwoDTools.PlayerJump>().JumpFixedUpdate();
            player.GetComponent <TwoDTools.PlayerController2D>().ApplyGravtiy();

            Assert.LessOrEqual(player.GetComponent <TwoDTools.PlayerController2D>().currentVelocity.y, 0);
        }
コード例 #2
0
 public void JumpUpdate()
 {
     if (!input.JumpButtonPressed() && !input.JumpButtonLetGo() && !input.JumpButtonHeld())
     {
         if (!playerController.playerState.IsTouchingFloor() && playerController.currentVelocity.y > 0)
         {
             playerController.currentVelocity.y = 0;
         }
         playerController.playerState.NotJumping();
         return;
     }
     if (input.JumpButtonPressed())
     {
         CalcualteJump();
         playerController.lastTouchedGround = -1;
         return;
     }
     if (input.JumpButtonLetGo())
     {
         CalculateForWhenJumpButtonLetGo();
         playerController.playerState.NotJumping();
         return;
     }
 }