//calculates the velocity increase needed to reach the target height in the given time float ContinuousVelocity() { float heightNeeded = maxJumpHeight - minJumpHeight; float gravityResistance = timeToMaxJump * CentralGravity.GetGravityAcceleration() / 2; return(heightNeeded + gravityResistance); }
//Collider2D[] cols; // Use this for initialization void Start() { cc = GetComponent <CentripetalCounter>(); grav = GetComponent <CentralGravity>(); body = GetComponent <Rigidbody2D>(); //cols = GetComponents<Collider2D>(); }
void OnTriggerExit2D(Collider2D col) { int objLayer = col.gameObject.layer; if (objLayer == playerLayer || objLayer == boxLayer) { CentralGravity cg = col.GetComponent <CentralGravity>(); //print(col.gameObject.name); cg.RightsideUp(); } }
void OnTriggerEnter2D(Collider2D col) { if (col.gameObject.tag != "Player") { return; } int objLayer = col.gameObject.layer; if (objLayer == playerLayer || objLayer == boxLayer || objLayer == ignoreLayer) { CentralGravity cg = col.GetComponent <CentralGravity>(); //print(col.gameObject.name); cg.UpsideDown(); } }
//applies the jump force to the player, and adapts if the player's gravity is inverted void JumpForce() { if (!jumpNextFrame) { return; } jumpNextFrame = false; ++jumpCount; JumpSound(); float magnitude = Mathf.Sqrt(2 * CentralGravity.GetGravityAcceleration() * minJumpHeight); if (gravity.reversed) { body.AddForce(transform.up * -magnitude * body.mass, ForceMode2D.Impulse); } else { body.AddForce(transform.up * magnitude * body.mass, ForceMode2D.Impulse); } }
//applies jump force to the player void NewJumpForce() { float magnitude = 0; if (jumpNextFrame) { magnitude = Mathf.Sqrt(2 * CentralGravity.GetGravityAcceleration() * minJumpHeight); jumpNextFrame = false; ++jumpCount; } else if (stillJumping && timer < timeToMaxJump) { float dif = maxJumpHeight - minJumpHeight; if (dif <= 0) { return; } magnitude = ContinuousVelocity() * Time.fixedDeltaTime; timer += Time.fixedDeltaTime; } ApplyForce(magnitude); }
void OnTriggerExit2D(Collider2D col) { if (col.gameObject.tag != "Player") { return; } /* * int objLayer = col.gameObject.layer; * * if (objLayer == playerLayer || objLayer == boxLayer || objLayer == ignoreLayer){ * CentralGravity cg = col.GetComponent<CentralGravity>(); * //print(col.gameObject.name); * cg.RightsideUp(); * } */ CentralGravity cg = col.GetComponent <CentralGravity>(); //print(col.gameObject.name); cg.RightsideUp(); }
void Start() { jump = PlayerControlMap.jump; body = GetComponent <Rigidbody2D>(); gravity = GetComponent <CentralGravity>(); }