コード例 #1
0
ファイル: CartController.cs プロジェクト: tedajax/ludum-36
    void Update()
    {
        _horizontalAxis = Input.GetAxis("Horizontal");
        _verticalAxis   = Input.GetAxis("Vertical");

        _prevCrankAngle = _crankAngle;

        float crankTurnRate = Mathf.Lerp(_crankMinTurnRate, _crankMaxTurnRate, _speedRatio);

        _crankAngle += crankTurnRate * -_horizontalAxis * Time.deltaTime;
        _crankAngle  = Mathf.Clamp(_crankAngle, -_crankMaxAngle, _crankMaxAngle);
        _crankTransform.localRotation = Quaternion.AngleAxis(_crankAngle, Vector3.forward);

        if (_crankAngle > 0f && _prevCrankAngle <= 0f)
        {
            _leftDude.Duck();
            _rightDude.Stand();
            _audioSource.PlayOneShot(_crankClip);
        }
        else if (_crankAngle < 0f && _prevCrankAngle >= 0f)
        {
            _leftDude.Stand();
            _rightDude.Duck();
            _audioSource.PlayOneShot(_crankClip);
        }

        float crankDelta = _crankAngle - _prevCrankAngle;

        _crankForceRequested += crankDelta / _crankMaxAngle;

        if (_jumpCooldown > 0f)
        {
            _jumpCooldown -= Time.deltaTime;
        }

        if (Input.GetButtonDown("Jump"))
        {
            _audioSource.PlayOneShot(_jumpChargeClip);
        }
        else if (Input.GetButton("Jump"))
        {
            _jumpCharge += Time.deltaTime;
        }
        else if (Input.GetButtonUp("Jump"))
        {
            float t = Mathf.Clamp01(_jumpCharge / _maxJumpChargeTime);
            _jumpForceRequested = Mathf.Lerp(_minJumpForce, _maxJumpForce, t);
            _audioSource.Stop();
        }

        if (transform.position.y < _killY)
        {
            GameController._Instance.Reset();
        }

        if (transform.position.x > 30f && _musicStarted == false)
        {
            _musicStarted = true;
            _musicSource.Play();
        }
    }