Menu
CoddyTech

Le coureur

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 60 sur 67.

Ce chapitre permet de créer un petit jeu, Dodge the Blocks. Tu diriges un coureur le long d’une voie tandis que des blocs tombent du ciel, et un seul contact met fin à la partie. Tout le jeu tient dans un seul script, Runner, qui gagne une fonctionnalité à chaque leçon : le déplacement, les blocs qui tombent, leur nettoyage, la collision et le score.

La première fonctionnalité est un déplacement qui reste sur la voie, grâce à Mathf.Clamp(value, min, max) de Catch the Star : cette fonction renvoie min lorsque la valeur est inférieure à la plage, max lorsqu’elle lui est supérieure, et la valeur elle-même dans les autres cas. L’emplacement du clamp est important. Cette jauge de charge se remplit tant que la barre d’espace est maintenue, se vide lorsqu’elle ne l’est pas, et reste toujours entre 0 et 10 :

[SerializeField] private float charge = 0f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        charge += 4f * Time.deltaTime;
    }
    else
    {
        charge -= 2f * Time.deltaTime;
    }
    charge = Mathf.Clamp(charge, 0f, 10f);
    transform.localScale = new Vector3(0.5f, charge, 0.5f);
}

Le clamp intervient après la modification. S’il était appliqué en premier, la valeur pourrait dépasser la limite d’un pas à la fin de la frame, et la barre serait dessinée à partir de cette valeur. Mathf.Clamp renvoie également un nouveau nombre au lieu de modifier la variable que tu lui transmets : il faut donc réaffecter le résultat.

challenge icon

Défi

Moyen

Commencez Dodge the Blocks avec le coureur. L’Inspector donne au script Runner les valeurs speed (6) et laneEdge (4).

  • Les flèches gauche et droite déplacent le coureur sur l’axe x à une vitesse de speed unités par seconde.
  • Son x ne descend jamais en dessous de -laneEdge ni ne dépasse laneEdge, il reste donc sur la voie.

Appuyez sur Play, cliquez sur le jeu et courez jusqu’aux deux extrémités de la voie, puis cliquez sur Check.

Essayez vous-même

using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;

    void Update()
    {
        // déplace-toi le long de x avec les flèches, puis maintiens x dans la voie
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les bases du scripting dans Unity