Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.78 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class Sterowanie_bohaterem : MonoBehaviour {
  5.  
  6.  
  7.     public float predkosc;
  8.     public int skok;
  9.     public Rigidbody2D bohater;
  10.     public float stanprzed;
  11.     public float roznica; //potrzebne do ustalania miejsca
  12.     private Animator animacja;
  13.  
  14.     public Transform czujnikPodloza;
  15.     public float promienCzujnikaPodloza;
  16.     public LayerMask warstwa;
  17.     public bool dotykaPodloza;
  18.  
  19.     public int wysokoscSkoku;
  20.     public int IloscSkokow = 0;
  21.     bool czyMoznaSkoczyc = true;
  22.  
  23.  
  24.     // Use this for initialization
  25.     void Start ()
  26.     {
  27.         bohater = GetComponent<Rigidbody2D>();
  28.         animacja = GetComponent<Animator>();
  29.      
  30.     }
  31.     void FixedUpdate()
  32.     {
  33.         stanprzed = bohater.position.x;
  34.         dotykaPodloza = Physics2D.OverlapCircle(czujnikPodloza.position, promienCzujnikaPodloza, warstwa);
  35.     }
  36.    
  37.     void funkcja_po_Wcisnieciu_Buttona_W()
  38.     {
  39.  
  40.        
  41.         if (czyMoznaSkoczyc == true)
  42.         {
  43.             //ludek skacze
  44.             IloscSkokow++; //zwiekszamy o jeden
  45.             if (IloscSkokow >= 5)
  46.             {   // jak jest wiekszy lub rowny 5 to nie wolno skakać
  47.                 czyMoznaSkoczyc = false;
  48.                 dotykaPodloza = false;
  49.             } // jak jest 5 to blokujemy
  50.         }
  51.         if (dotykaPodloza == true) // jezeli to jakas wspolrzeczna Y to dotykaPodloza  == 0 czy tez <0,,,, zero i nizej to mysle ze dotyka ziemi.
  52.         {
  53.             czyMoznaSkoczyc = true;  // gdy dotknie ziemi to odblokowujemy skok
  54.             IloscSkokow = 0; //i zerujemy ilosc Skokow.
  55.         }
  56.     }
  57.  
  58.  
  59.     // Update is called once per frame
  60.     void Update () {
  61.  
  62.         roznica = Mathf.Abs(stanprzed - bohater.position.x); //math robi zawsze dodatnią wartość | potrzebne do ustalania miejsca
  63.         animacja.SetFloat("przejscie", roznica);
  64.         animacja.SetBool("naPodlozu", dotykaPodloza);
  65.  
  66.        
  67.  
  68.         if (Input.GetKey(KeyCode.D))
  69.         {
  70.             bohater.velocity = new Vector2(predkosc, bohater.velocity.y);
  71.         }
  72.         if (Input.GetKey(KeyCode.A))
  73.         {
  74.             bohater.velocity = new Vector2(-predkosc, bohater.velocity.y);
  75.         }
  76.  
  77.         if (Input.GetKeyDown(KeyCode.W))
  78.         {
  79.             funkcja_po_Wcisnieciu_Buttona_W();
  80.         }
  81.        
  82.  
  83.  
  84.         if (Input.GetKeyDown(KeyCode.W) && dotykaPodloza)
  85.         {
  86.             bohater.velocity = new Vector2(bohater.velocity.x, wysokoscSkoku);
  87.             funkcja_po_Wcisnieciu_Buttona_W();
  88.         }
  89.  
  90.         if (bohater.velocity.x > 0)
  91.         {
  92.             transform.localScale = new Vector3(-1f, 1f, 1f);
  93.         }
  94.         if (bohater.velocity.x < 0)
  95.         {
  96.             transform.localScale = new Vector3(1f, 1f, 1f);
  97.         }
  98.  
  99.  
  100.  
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement