public void Jump() { if (grounded && !crouch && recovered) { if (properties.jumpTimer == 0) { if (rigidbody2D.velocity.x == 0) { rigidbody2D.AddForce(new Vector2(0.0f, properties.jumpForce)); } else { if (rigidbody2D.velocity.x > 0.1) { rigidbody2D.AddForce(new Vector2(100f, properties.jumpForce)); } else if (rigidbody2D.velocity.x < -0.1) { rigidbody2D.AddForce(new Vector2(-100f, properties.jumpForce)); } } anim.Jump(); Debug.Log("Jump"); properties.jumpTimer = Time.time + 1.5f; } else if (Time.time < properties.jumpTimer) { Debug.Log("Too Soon"); } else if (Time.time > properties.jumpTimer) { properties.jumpTimer = 0; } } }
// Update is called once per frame void Update() { if (!jumping) { // Level Complete if (levelManager.RemainingStones == 1) { //if (!animationController.IsShoryuken) // StartCoroutine(animationController.ShoryukenBounce()); animationController.Shoryuken(); StartCoroutine(levelManager.LevelComplete()); } animationController.Jump(false); KeyboardInput(); TouchInput(); } else { animationController.Jump(true); if (!resetting) { transform.position = Vector3.MoveTowards(transform.position, levelManager.CurrentNode.transform.position, jumpSpeed); if (transform.position == levelManager.CurrentNode.transform.position) { jumping = false; levelManager.CurrentNode.GetComponent <Node>().Squish(); } // squash/stretch over jump if (Vector2.Distance(transform.position, levelManager.CurrentNode.transform.position) > distanceFromNextRock / 2.0f) { transform.localScale += new Vector3(scaleAmount, scaleAmount); } else { if (transform.localScale.x > 1.0f) { transform.localScale -= new Vector3(scaleAmount, scaleAmount); } } } } }