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); }
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; }
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); }
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"); }