2D Platformer Code
Sat Mar 12 2022 19:04:51 GMT+0000 (Coordinated Universal Time)
Saved by @BryanJ22
using UnityEngine; using System.Collections; public class playerController : MonoBehaviour { public float speed = 8; public float jumpForce = 18; public float bounceAmount = 15; public GameObject currentEnemy; public GameObject playerCanvas; public GameObject experience; private float moveVelocity = 0; private bool grounded = false; private bool hitEnemyTop = false; [HideInInspector] public bool hitEnemy = false; void Update () { if(transform.parent.GetComponent<knockBack>().goKnockBack == false) { if (Input.GetKeyDown (KeyCode.W)) { if(grounded) { transform.parent.GetComponent<Rigidbody2D>().velocity = new Vector2(moveVelocity, jumpForce); } } if (Input.GetKey (KeyCode.A)) { moveVelocity = -speed; } else if (Input.GetKey (KeyCode.D)) { moveVelocity = speed; } else { moveVelocity = 0; } transform.parent.GetComponent<Rigidbody2D>().velocity = new Vector2(moveVelocity, transform.parent.GetComponent<Rigidbody2D>().velocity.y); } if (hitEnemyTop) { if(currentEnemy.GetComponent<SpriteRenderer>().color == transform.parent.GetComponent<SpriteRenderer>().color) { transform.parent.GetComponent<Rigidbody2D>().velocity = new Vector2(moveVelocity, bounceAmount); currentEnemy.GetComponentInChildren<enemyHealth>().removeHealth(); hitEnemyTop = false; } else { playerCanvas.GetComponentInChildren<playerHealth>().removeHealth(); startKnockBack(); hitEnemyTop = false; } } if (!hitEnemyTop && hitEnemy) { playerCanvas.GetComponentInChildren<playerHealth>().removeHealth(); startKnockBack(); hitEnemy = false; } if(currentEnemy != null) { if(currentEnemy.GetComponentInChildren<enemyHealth>().health.fillAmount <= 0) { experience.GetComponent<experienceCounter>().addExperience(); Destroy(currentEnemy); } } } void startKnockBack() { if(transform.position.x <= currentEnemy.transform.position.x) { transform.parent.GetComponent<knockBack>().knockFromRight = false; } else { transform.parent.GetComponent<knockBack>().knockFromRight = true; } transform.parent.GetComponent<knockBack>().create_knockBack(); } void OnTriggerEnter2D(Collider2D other) { if (other.tag == "ground") { grounded = true; } if (other.tag == "enemyTop") { currentEnemy = other.gameObject; hitEnemyTop = true; } } void OnTriggerExit2D(Collider2D other) { if (other.tag == "ground") { grounded = false; } } }
Comments