Menu
CoddyTech

Gagner ou perdre

Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 32 sur 63.

challenge icon

Défi

Moyen

Dernière étape : un moyen de gagner. Conserve tout ce qui a été fait aux étapes précédentes et ajoute à Ball :

  • public int target = 10; (l’Inspector définit la valeur sur 8).
  • La partie est en cours tant que timeLeft est supérieur à 0 et que score est inférieur à target. Écris cela sous forme de méthode, bool IsPlaying(), et utilise-la : le compte à rebours s’écoule, les flèches font avancer la balle et les pièces ajoutent des points au score uniquement pendant la partie.
  • Lorsqu’une pièce fait atteindre à score la valeur de target ou une valeur supérieure, affiche You win! après la ligne du score.
  • Lorsque le temps s’écoule avant cela, affiche You lose! après la ligne Time's up!.

Appuie sur Play et atteins 8 points avant la fin du compte à rebours, puis appuie sur Check.

Essayez vous-même

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);
    }
}

Toutes les leçons de Physique et gameplay