using UnityEngine; using UnityEngine.SceneManagement; using System.Collections; public class Speler : MonoBehaviour { public float beweegKracht = 50f; public float maxSnelheid = 2f; public float springkracht = 200f; public float dubbelspringkracht = 100f; public LayerMask platformlaag; public Transform grondCheck; public ParticleSystem geraakt; private Rigidbody2D rb2d; private bool kijktNaarRechts = true; private bool opdegrond = false; private bool dubbelSpringen = false; private float grondRadius = 0.2f; // Use this for initialization void Start () { rb2d = GetComponent (); } // Update is called once per frame void Update () { //Springen mag als de speler op de grond staat en op de spatiebalk wordt ingedrukt. if (opdegrond && Input.GetKeyDown (KeyCode.Space)) { rb2d.AddForce (new Vector2 (0, springkracht)); //Eventueel mag er nu nog een keer gesprongen worden. dubbelSpringen = true; //Dubbelspringen mag als er al een keer gesprongen is en er op de spatiebalk wordt gedrukt. } else if (dubbelSpringen && Input.GetKeyDown (KeyCode.Space)) { //De dubbelspringkracht is lager dan de eerste springkracht. rb2d.AddForce (new Vector2 (0, dubbelspringkracht)); //Dubbelspringen mag maar één keer. dubbelSpringen = false; } } void FixedUpdate() { opdegrond = Physics2D.OverlapCircle (grondCheck.position, grondRadius, platformlaag); float beweging = Input.GetAxis ("Horizontal"); if (beweging * rb2d.velocity.x < maxSnelheid) { rb2d.AddForce (Vector2.right * beweging * beweegKracht); } if (Mathf.Abs (rb2d.velocity.x) > maxSnelheid) { rb2d.velocity = new Vector2 (Mathf.Sign (rb2d.velocity.x) * maxSnelheid, rb2d.velocity.y); } if (beweging > 0 && !kijktNaarRechts) { //speler keek naar links, maar moet nu naar rechts gaan kijken Flip (); } else if (beweging < 0 && kijktNaarRechts) { //speler keek naar rechts, maar moet nu naar links gaan kijken Flip(); } } void Flip() { kijktNaarRechts = !kijktNaarRechts; Vector3 schaal = transform.localScale; schaal.x *= -1; transform.localScale = schaal; } void OnDestroy() { Instantiate (geraakt, transform.position, transform.rotation); } }