コード例 #1
0
 // Update is called once per frame
 void Update()
 {
     _tw.Update(Time.deltaTime);
     if (!Input.GetButtonDown("Jump") && !InputUtility.CheckTouchPhase(TouchPhase.Began))
     {
         return;
     }
     if (_tw.Writing)
     {
         _tw.PrintAll();
         hint.text = "<JUMP> для продолжения";
     }
     else
     {
         _tw.Stop();
         EventManager.TriggerEvent(GameEventTypes.StartDialogComplete, null);
     }
 }
コード例 #2
0
ファイル: Player.cs プロジェクト: viyy/ParrotRunner
    // Update is called once per frame
    void Update()
    {
        if (!_isReady)
        {
            return;
        }
        if (!_isRunning)
        {
            if (!Input.GetButtonDown("Jump") && !InputUtility.CheckTouchPhase(TouchPhase.Began))
            {
                return;
            }
            if (!_frameSkipped)
            {
                _frameSkipped = true;
                return;
            }
            _isRunning = true;
            EventManager.TriggerEvent(GameEventTypes.StartRun, EventArgs.Empty);
            //rigid.velocity = Vector2.right*speed;
        }
        else
        {
            _score += speed * Time.deltaTime;
            _inAir  = Math.Abs(rigid.velocity.y) > 0.001;
            var dx = speed * Time.deltaTime * Vector3.right;
            transform.position += dx;
            //rigid.MovePosition(transform.position+dx);
            if (!check.isStuck)
            {
                camera.gameObject.transform.position = new Vector3(transform.position.x + 6, 0, -10);
                if (Hp < MaxHp)
                {
                    Hp += HpRegen * Time.deltaTime;
                    if (Hp >= MaxHp)
                    {
                        Hp = MaxHp;
                    }
                }
                else
                {
                    hpBarVisible = false;
                }
            }
            else
            {
                Hp -= StuckHpLoss * Time.deltaTime;
                if (Hp <= 0f)
                {
                    EventManager.TriggerEvent(GameEventTypes.Death, EventArgs.Empty);
                }
                if (Hp < MaxHp)
                {
                    hpBarVisible = true;
                }
            }
            hpBar.value   = Hp;
            hpBarCg.alpha = hpBarVisible ? 1f : 0f;
            if (!_inAir)
            {
                if (Math.Abs(transform.rotation.eulerAngles.z) > 0.01)
                {
                    transform.Rotate(Vector3.forward, 20f);
                }
            }
            if (!_inAir && (Input.GetButtonDown("Jump") || InputUtility.CheckTouchPhase(TouchPhase.Began)))
            {
                rigid.velocity = Vector2.up * jumpSpeed;
                transform.Rotate(Vector3.forward, -20f);
                _sound.Play();
            }

            if (rigid.velocity.y < 0)
            {
                rigid.velocity += Physics2D.gravity.y * (fallMultiplier - 1) * Time.deltaTime * Vector2.up;
            }
            else if (rigid.velocity.y > 0 && (!Input.GetButton("Jump") && Input.touchCount == 0))
            {
                rigid.velocity += Physics2D.gravity.y * (lowJumpMultiplier - 1) * Time.deltaTime * Vector2.up;
            }

            scoreText.text = $"{_score:000000}";
        }
    }