Menu
CoddyTech

Le plateau

Leçon 1 sur 14 du cours Jeu Unity : Snake 3D de Coddy.

Dans ce cours, tu crées Snake en 3D : un serpent composé de cubes sur un plateau de 15 sur 15, vu de dessus. Il avance d’une case à la fois, tourne avec les flèches ou les touches WASD, mange, grandit et meurt lorsqu’il touche les murs ou sa propre queue. Snake contrôle la tête ; GameManager reste vide jusqu’à l’arrivée de la nourriture. Le bouton « Jouer » lance le jeu ; le bouton « Vérifier » évalue ton code.

Les cases ont une largeur d’une unité et sont placées sur des nombres entiers de -7 à 7. Le serpent ne glisse jamais : il saute d’une case entière à chaque tick, un battement régulier, et reste immobile entre les battements. Un battement fonctionne avec un minuteur : ajoute Time.deltaTime à chaque image, et lorsqu’il atteint la durée du battement, agis et soustrais cette durée :

timer += Time.deltaTime;
if (timer >= 0.5f)
{
    timer -= 0.5f;
    Step();
}

Soustraire la durée du battement, au lieu de régler le minuteur sur 0, conserve la fraction d’image qui a dépassé cette durée, afin que le battement ne prenne pas de retard. Utilise le champ tick, pas un nombre.

challenge icon

Défi

Facile

Fais avancer la tête d’une case à chaque tick.

  1. Dans Snake, ajoute private float timer;
  2. Dans Update(), ajoute Time.deltaTime à timer ; lorsque timer >= tick, soustrais-lui tick et appelle Step().
  3. Dans Step(), ajoute direction à transform.position.

Appuie sur « Jouer » : la tête avance vers la droite, case par case, et sort du plateau pour le moment. Puis clique sur « Vérifier ».

Essayez vous-même

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // secondes entre deux pas
    private Vector3 direction = Vector3.right;

    void Update()
    {
        // Toutes les tick secondes, effectuer un Step()
    }

    void Step()
    {
        // Déplacer la tête d’une case dans la direction direction
    }
}

Toutes les leçons de Jeu Unity : Snake 3D

Entraînez-vous par vous-même : Playground Unity