Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class Sterowanie_bohaterem : MonoBehaviour {
- public float predkosc;
- public int skok;
- public Rigidbody2D bohater;
- public float stanprzed;
- public float roznica; //potrzebne do ustalania miejsca
- private Animator animacja;
- public Transform czujnikPodloza;
- public float promienCzujnikaPodloza;
- public LayerMask warstwa;
- public bool dotykaPodloza;
- public int wysokoscSkoku;
- public int IloscSkokow = 0;
- bool czyMoznaSkoczyc = true;
- // Use this for initialization
- void Start ()
- {
- bohater = GetComponent<Rigidbody2D>();
- animacja = GetComponent<Animator>();
- }
- void FixedUpdate()
- {
- stanprzed = bohater.position.x;
- dotykaPodloza = Physics2D.OverlapCircle(czujnikPodloza.position, promienCzujnikaPodloza, warstwa);
- }
- void funkcja_po_Wcisnieciu_Buttona_W()
- {
- if (czyMoznaSkoczyc == true)
- {
- //ludek skacze
- IloscSkokow++; //zwiekszamy o jeden
- if (IloscSkokow >= 5)
- { // jak jest wiekszy lub rowny 5 to nie wolno skakać
- czyMoznaSkoczyc = false;
- dotykaPodloza = false;
- } // jak jest 5 to blokujemy
- }
- if (dotykaPodloza == true) // jezeli to jakas wspolrzeczna Y to dotykaPodloza == 0 czy tez <0,,,, zero i nizej to mysle ze dotyka ziemi.
- {
- czyMoznaSkoczyc = true; // gdy dotknie ziemi to odblokowujemy skok
- IloscSkokow = 0; //i zerujemy ilosc Skokow.
- }
- }
- // Update is called once per frame
- void Update () {
- roznica = Mathf.Abs(stanprzed - bohater.position.x); //math robi zawsze dodatnią wartość | potrzebne do ustalania miejsca
- animacja.SetFloat("przejscie", roznica);
- animacja.SetBool("naPodlozu", dotykaPodloza);
- if (Input.GetKey(KeyCode.D))
- {
- bohater.velocity = new Vector2(predkosc, bohater.velocity.y);
- }
- if (Input.GetKey(KeyCode.A))
- {
- bohater.velocity = new Vector2(-predkosc, bohater.velocity.y);
- }
- if (Input.GetKeyDown(KeyCode.W))
- {
- funkcja_po_Wcisnieciu_Buttona_W();
- }
- if (Input.GetKeyDown(KeyCode.W) && dotykaPodloza)
- {
- bohater.velocity = new Vector2(bohater.velocity.x, wysokoscSkoku);
- funkcja_po_Wcisnieciu_Buttona_W();
- }
- if (bohater.velocity.x > 0)
- {
- transform.localScale = new Vector3(-1f, 1f, 1f);
- }
- if (bohater.velocity.x < 0)
- {
- transform.localScale = new Vector3(1f, 1f, 1f);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement