protected float GetJumpVerticalVelocity(Vector3 velocity, bool canJump, out bool hasJumped
                                            , ButtonPressState allowedJumpButtonPressState = ButtonPressState.IsDown)
    {
        float value = velocity.y;

        hasJumped = false;
        _hasPerformedGroundJumpThisFrame = false;

        if (_playerController.characterPhysicsManager.lastMoveCalculationResult.collisionState.below)
        {
            _hadDashPressedWhileJumpOff = false; // we set this to false here as the value is only used when player jumps off, not when he is grounded
            value = 0f;
        }

        if (canJump &&
            (_gameManager.inputStateManager.GetButtonState("Jump").buttonPressState & allowedJumpButtonPressState) != 0
            )
        {
            if (this.CanJump())
            {
                value     = CalculateJumpHeight(velocity);
                hasJumped = true;
                _hasPerformedGroundJumpThisFrame = true;
                _hadDashPressedWhileJumpOff      = (_gameManager.inputStateManager.GetButtonState("Dash").buttonPressState & ButtonPressState.IsPressed) != 0;

                _playerController.JumpedThisFrame();
            }
        }

        return(value);
    }
Example #2
0
    public void Update()
    {
        ButtonPressState state = ButtonPressState.Idle;

        if (Input.GetButton(_buttonName))
        {
            state |= ButtonPressState.IsPressed;
        }

        if (((state & ButtonPressState.IsPressed) != 0) &&          // IF   currently pressed
            ((ButtonPressState & ButtonPressState.IsPressed) == 0)) // AND  previously not pressed
        {
            _pressStarted = Time.time;

            state |= ButtonPressState.IsDown;
        }

        if (((state & ButtonPressState.IsPressed) == 0) &&          // IF   currently not pressed
            ((ButtonPressState & ButtonPressState.IsPressed) != 0)) // AND  previously pressed
        {
            state |= ButtonPressState.IsUp;
        }

        if ((state & (ButtonPressState.IsUp | ButtonPressState.IsDown | ButtonPressState.IsPressed)) != 0)
        {
            state &= ~ButtonPressState.Idle;
        }

        ButtonPressState = state;
    }
Example #3
0
        private void SetButtonColor(FrameworkElement button, ButtonPressEventArgs e, ButtonPressState buttonState)
        {
            var outerColor    = e.Button.RedBrightness == ButtonBrightness.Full ? overlayColor : radialOuterColor;
            var fillColor     = e.Button.RedBrightness == ButtonBrightness.Full ? overlayColor : radialInnerColor;
            var redBrightness = e.Button.RedBrightness == ButtonBrightness.Full
                ? ButtonBrightness.Off
                : ButtonBrightness.Full;
            var newBrush = new RadialGradientBrush(fillColor, outerColor);

            newBrush.RadiusX = .6;
            newBrush.RadiusY = .6;
            if (e.Type == ButtonType.Grid)
            {
                ((Border)button).Child = GetPath(e.Y, e.X, newBrush);
            }
            else
            {
                ((Border)button).Child = GetProfilePath(newBrush);
            }

            _launchPadService.SetButtonBrightness(e.Button, redBrightness, ButtonBrightness.Off);
        }
Example #4
0
    protected float GetJumpVerticalVelocity(
        Vector3 velocity,
        bool canJump,
        out bool hasJumped,
        ButtonPressState allowedJumpButtonPressState = ButtonPressState.IsDown)
    {
        var value = velocity.y;

        hasJumped = false;

        HasPerformedGroundJumpThisFrame = false;

        if (PlayerController.IsGrounded())
        {
            HadDashPressedWhileJumpOff = false; // we set this to false here as the value is only used when player jumps off, not when he is grounded

            value = 0f;
        }

        if (canJump &&
            (GameManager.InputStateManager.GetButtonState("Jump").ButtonPressState & allowedJumpButtonPressState) != 0)
        {
            if (CanJump())
            {
                value = CalculateJumpHeight(velocity);

                hasJumped = true;

                HasPerformedGroundJumpThisFrame = true;

                HadDashPressedWhileJumpOff = (GameManager.InputStateManager.GetButtonState("Dash").ButtonPressState & ButtonPressState.IsPressed) != 0;

                PlayerController.OnJumpedThisFrame();
            }
        }

        return(value);
    }
 public void Update()
 {
     switch (state)
     {
         case ButtonPressState.PRESSING:
             currAnimTime += Time.deltaTime;
             float weight;
             if (currAnimTime > maxTime)
             {
                 currAnimTime = maxTime;
                 weight = 1;
                 state = ButtonPressState.RETURNING;
                 DoorController dc = currentPinPad.parent.gameObject.GetComponent<DoorController>();
                 if (dc != null)
                 {
                     dc.ToggleDoor();
                 }
             }
             else
             {
                 float normTime = currAnimTime / maxTime;
                 weight = Mathf.Sin(normTime * Mathf.PI / 2);
             }
             ikSecondary.solver.leftHandEffector.positionWeight = weight;
             break;
         case ButtonPressState.RETURNING:
             currAnimTime -= Time.deltaTime;
             if (currAnimTime < 0)
             {
                 currAnimTime = 0;
                 weight = 0;
                 state = ButtonPressState.INACTIVE;
             }
             else
             {
                 float normTime = currAnimTime / maxTime;
                 weight = Mathf.Sin(normTime * Mathf.PI / 2);
             }
             ikSecondary.solver.leftHandEffector.positionWeight = weight;
             break;
         case ButtonPressState.INACTIVE:
         default:
             break;
     }
 }
 public void PressButton(Transform pinPad)
 {
     if (!IsActive())
     {
         currentPinPad = pinPad;
         ikSecondary.solver.leftHandEffector.position = pinPad.position;
         state = ButtonPressState.PRESSING;
     }
 }
 public ButtonIKController(CrossfadeFBBIK[] iks)
 {
     this.ikSecondary = iks[1];
     this.state = ButtonPressState.INACTIVE;
     this.currAnimTime = 0.0f;
     this.maxTime = 0.6f;
 }
    //public bool IsDown;
    //public bool IsUp;
    //public bool IsPressed;

    public void Update()
    {
        ButtonPressState state = ButtonPressState.Idle;

        //bool isPressed = Input.GetButton(_buttonName);
        if (Input.GetButton(_buttonName))
        {
            state |= ButtonPressState.IsPressed;
        }

        if (((state & ButtonPressState.IsPressed) != 0) &&          // IF   currently pressed
            ((buttonPressState & ButtonPressState.IsPressed) == 0)) // AND  previously not pressed
        {
            _pressStarted = Time.time;

            state |= ButtonPressState.IsDown;

            Logger.Trace(TRACE_TAG, "Button " + _buttonName + " is down.");
        }

        if (((state & ButtonPressState.IsPressed) == 0) &&          // IF   currently not pressed
            ((buttonPressState & ButtonPressState.IsPressed) != 0)) // AND  previously pressed
        {
            state |= ButtonPressState.IsUp;
        }

        if ((state & (ButtonPressState.IsUp | ButtonPressState.IsDown | ButtonPressState.IsPressed)) != 0)
        {
            state &= ~ButtonPressState.Idle;
        }

        buttonPressState = state;

        //bool isPressed = Input.GetButton(_buttonName);

        //if (isPressed && !this.IsPressed)
        //{
        //  _pressStarted = Time.time;
        //  this.IsDown = true;

        //  Logger.Trace(TRACE_TAG, "Button " + _buttonName + " is down.");
        //}
        //else
        //{
        //  this.IsDown = false;
        //}

        //this.IsUp = (this.IsPressed && !isPressed);
        //this.IsPressed = isPressed;

        //if (this.IsDown)
        //  Logger.Assert(((state & ButtonPressState.IsDown) != 0), "DOWN wrong");
        //else
        //  Logger.Assert(((state & ButtonPressState.IsDown) == 0), "DOWN wrong");
        //if (this.IsUp)
        //  Logger.Assert(((state & ButtonPressState.IsUp) != 0), "IsUp wrong");
        //else
        //  Logger.Assert(((state & ButtonPressState.IsUp) == 0), "IsUp wrong");
        //if (this.IsPressed)
        //  Logger.Assert(((state & ButtonPressState.IsPressed) != 0), "IsPressed wrong");
        //else
        //  Logger.Assert(((state & ButtonPressState.IsPressed) == 0), "IsPressed wrong");
        //if (this.IsPressed || this.IsUp || this.IsDown)
        //  Logger.Assert(((state & ButtonPressState.Idle) == 0), "Idle wrong");
        //else
        //  Logger.Assert(((state & ButtonPressState.Idle) != 0), "Idle wrong");
        //Debug.Log("test done");
    }