From af64c2e0f4eb3e1799a1ea8a0c1d1458dcff0152 Mon Sep 17 00:00:00 2001 From: M VINCENT PETT <42676259+Vextriz@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:30:19 +0100 Subject: [PATCH] fix: jump issues (#36) --- Assets/Scripts/PlayerScript.cs | 35 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/Assets/Scripts/PlayerScript.cs b/Assets/Scripts/PlayerScript.cs index c3b4881..78a5737 100644 --- a/Assets/Scripts/PlayerScript.cs +++ b/Assets/Scripts/PlayerScript.cs @@ -5,44 +5,40 @@ public class PlayerScript : MonoBehaviour { public Rigidbody2D rigidBody; public GameObject playerObject; - public ParticleSystem particle; - private bool wantsToJump = false; public bool isColliding = true; - public AudioSource audioSource; + private bool hasStarted = false; + + private bool canJump = true; public void Start() { var mainModule = particle.main; mainModule.simulationSpace = ParticleSystemSimulationSpace.World; particle.transform.parent = null; + + Invoke(nameof(EnableInput), 0.1f); + } + + private void EnableInput() + { + hasStarted = true; } public void Update() { - transform.position += Time.deltaTime * 8.6f * Vector3.right; + rigidBody.linearVelocity = new Vector2(8.6f, rigidBody.linearVelocity.y); - if (Input.GetKey(KeyCode.Space)) + if (hasStarted && isColliding && Input.GetKey(KeyCode.Space) && canJump) { - wantsToJump = true; - } - else - { - wantsToJump = false; + Jump(); } if (!IsJumping()) { AlignRotation(); - - if (wantsToJump) - { - Jump(); - wantsToJump = false; - } - particle.gameObject.SetActive(true); } else @@ -88,13 +84,14 @@ public class PlayerScript : MonoBehaviour public void OnCollisionEnter2D(Collision2D collision) { isColliding = true; + canJump = true; - if (collision.gameObject.tag == "Kill") + if (collision.gameObject.CompareTag("Kill")) { SceneManager.LoadScene(SceneManager.GetActiveScene().name); } - if (collision.gameObject.tag == "Win") + if (collision.gameObject.CompareTag("Win")) { SceneManager.LoadScene("HomeScene"); }