Menu
CoddyTech

Gewinnen oder verlieren

Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 32 von 63.

challenge icon

Aufgabe

Mittel

Letzter Schritt: eine Möglichkeit zu gewinnen. Behalte alles aus den vorherigen Schritten bei und ergänze Ball um Folgendes:

  • public int target = 10; (im Inspector wird 8 festgelegt).
  • Das Spiel läuft, solange timeLeft größer als 0 und score kleiner als target ist. Schreibe das als Methode bool IsPlaying() und verwende sie: Die Uhr zählt herunter, die Pfeiltasten bewegen den Ball und Münzen erhöhen den Punktestand nur, solange das Spiel läuft.
  • Wenn eine Münze score auf target oder höher bringt, gib nach der Zeile mit dem Punktestand You win! aus.
  • Wenn zuerst die Zeit abläuft, gib nach der Zeile Time's up! You lose! aus.

Drücke Play und erreiche 8 Punkte, bevor die Zeit abläuft. Klicke dann auf Check.

Probier es selbst

using UnityEngine;

public class Ball : MonoBehaviour
{
    public float force = 10f;
    public int score;
    public float timeLimit = 60f;
    public float timeLeft;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        timeLeft = timeLimit;
    }

    void Update()
    {
        if (timeLeft > 0f)
        {
            timeLeft -= Time.deltaTime;
            if (timeLeft <= 0f)
            {
                timeLeft = 0f;
                Debug.Log("Time's up! Score: " + score);
            }
        }
    }

    void FixedUpdate()
    {
        if (timeLeft > 0f)
        {
            float x = Input.GetAxis("Horizontal");
            float z = Input.GetAxis("Vertical");
            rb.AddForce(new Vector3(x, 0f, z) * force);
        }
    }

    public void AddScore(int points)
    {
        score += points;
        Debug.Log("Score: " + score);
    }
}

Alle Lektionen in Physik und Gameplay