示例#1
0
        private void WallJuming()
        {
            if (!aplication.playerModel.OnFloor && !aplication.wall.DragOnWall(OnceButton.GetButtonStatus()) && aplication.playerModel.OnRightWall && !aplication.playerModel.Dash)
            {
                aplication.slide.PlayerSlide(aplication.playerModel.horizontal);
                if (HoldButton.GetButtonStatusDown(ButtonCode.JumpButton))
                {
                    powerWallJump = aplication.playerModel.SlideWall ? Math.Sqrt(aplication.playerModel.powerWallJump) : aplication.playerModel.powerWallJump;

                    aplication.playerModel.JumpWall = true;

                    Invoke(nameof(StopWallJump), aplication.playerModel.timeWallJump);

                    aplication.direction.diractionPlayer(-transform.localScale.x, transform.localScale);
                }
            }
            else
            {
                aplication.playerModel.SlideWall = false;
            }

            if (aplication.playerModel.JumpWall)
            {
                var diraction = aplication.playerModel.SlideWall ? -aplication.playerModel.horizontalRaw : -hit.normal.x;


                aplication.jumpWall.Jump(new Vector2((float)powerWallJump, (float)Math.Sqrt(powerWallJump)), diraction, false);
            }
        }
示例#2
0
        private void Idle(Vector2 InputMove)
        {
            if (!aplication.wall.DragOnWall(OnceButton.GetButtonStatus()) && !aplication.playerModel.JumpWall && !aplication.playerModel.Dash)
            {
                aplication.movement.Idle(new MovementController(), InputMove);

                aplication.playerModel.Idle = aplication._Body.velocity.x != 0 ? true : false;
            }
        }
示例#3
0
        public void Jump()
        {
            if (!aplication.wall.DragOnWall(OnceButton.GetButtonStatus()) && !aplication.playerModel.JumpWall && !aplication.playerModel.Dash)
            {
                aplication.jump.Jump(new Vector2(aplication._Body.velocity.x, aplication.playerModel.standartJumpPower), 0f, HoldButton.GetButtonStatusDown(ButtonCode.JumpButton));
                aplication.jump.SetGravity(HoldButton.GetButtonStatus(ButtonCode.JumpButton));

                aplication.playerModel.Jump = aplication._Body.velocity.y != 0 && !aplication.playerModel.OnFloor ? true : false;
            }
        }
示例#4
0
        private void Update()
        {
            aplication.dash.SetDash();

            aplication.playerModel.horizontal = joystick.Horizontal;
            aplication.playerModel.vertical   = joystick.Vertical;

            aplication.playerModel.horizontalRaw = joystick.Horizontal;
            aplication.playerModel.verticalRaw   = joystick.Vertical;

            hit = Physics2D.Raycast(transform.position, new Vector2(transform.localScale.x, 0), distance);

            #region Movement

            Idle(new Vector2(aplication.playerModel.horizontal, aplication.playerModel.vertical));

            #endregion Movement


            #region Jump

            Jump();

            #endregion Jump


            #region Dash

            Dash();

            #endregion Dash


            #region Wall

            IdleWall();

            WallJuming();

            WallHangJump();

            #endregion Wall

            Death();

            #region Diraction

            if (!aplication.wall.DragOnWall(OnceButton.GetButtonStatus()) && !aplication.playerModel.JumpHangWall && !aplication.playerModel.JumpWall)
            {
                aplication.direction.diractionPlayer(aplication._Body.velocity.x, transform.localScale);
            }

            #endregion Diraction
        }
示例#5
0
 private void IdleWall()
 {
     if (aplication.wall.DragOnWall(OnceButton.GetButtonStatus()) && !aplication.playerModel.Dash)
     {
         aplication.movement.Idle(new WallMovementController(), new Vector2(aplication.playerModel.horizontal, aplication.playerModel.verticalRaw));
         aplication.playerModel.IdleWall = true;
     }
     else
     {
         aplication.playerModel.IdleWall = false;
     }
 }
示例#6
0
        private void WallHangJump()
        {
            if (HoldButton.GetButtonStatusDown(ButtonCode.JumpButton) && aplication.wall.DragOnWall(OnceButton.GetButtonStatus()) && !aplication.playerModel.Dash)
            {
                aplication.playerModel.JumpHangWall = true;

                Invoke(nameof(StopWallHangJump), aplication.playerModel.timeWallHangJump);
            }
            if (aplication.playerModel.JumpHangWall)
            {
                aplication.jumpWall.Jump(new Vector2((float)aplication.playerModel.powerWallHangJump * 1.8f, (float)Math.Abs(aplication.playerModel.powerWallHangJump)),
                                         aplication.playerModel.horizontalRaw, false);
            }
        }