Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- public class PlayerController : MonoBehaviour
- {
- public float jumpForce;
- public float liftingForce;
- public bool jumped;
- public bool doubleJumped;
- public LayerMask whatIsGround;
- private Rigidbody2D rb;
- private BoxCollider2D boxCollider2D;
- private float timestamp;
- void Start()
- {
- rb = GetComponent<Rigidbody2D>();
- boxCollider2D = GetComponent<BoxCollider2D>();
- }
- void Update()
- {
- if (!GameManager.instance.inGame)
- {
- return;
- }
- if (IsGrounded() && Time.time >= timestamp)
- {
- if (jumped || doubleJumped)
- {
- jumped = false;
- doubleJumped = false;
- }
- timestamp = Time.time + 0.5f;
- }
- if (Input.GetMouseButtonDown(0))
- {
- if (!jumped)
- {
- rb.linearVelocity = (new Vector2(0f, jumpForce));
- jumped = true;
- }
- else if (!doubleJumped)
- {
- rb.linearVelocity = (new Vector2(0f, jumpForce));
- doubleJumped = true;
- }
- }
- if (Input.GetMouseButton(0) && rb.linearVelocity.y <= 0f)
- {
- Debug.Log("Podnoszenie");
- rb.AddForce(new Vector2(0f, liftingForce * Time.deltaTime));
- }
- }
- private bool IsGrounded()
- {
- RaycastHit2D hit = Physics2D.BoxCast(
- boxCollider2D.bounds.center,
- boxCollider2D.bounds.size,
- 0f,
- Vector2.down,
- 1.0f,
- whatIsGround
- );
- return hit.collider != null;
- }
- void OnTriggerEnter2D(Collider2D other)
- {
- if (other.CompareTag("Obstacle"))
- {
- PlayerDeath();
- }
- else if (other.CompareTag("Coin"))
- {
- Debug.Log("Coin dotknięty");
- GameManager.instance.CoinCollected();
- Destroy(other.gameObject);
- }
- }
- void PlayerDeath()
- {
- GetComponent<Rigidbody2D>().constraints = RigidbodyConstraints2D.FreezeAll;
- GameManager.instance.GameOver();
- }
- }
Add Comment
Please, Sign In to add comment