Menu
CoddyTech

Nourriture

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

La nourriture se trouve sur une case aléatoire. Les cases sont des nombres entiers, alors choisis x et z avec la version int de Random.Range. Avec les entiers, la valeur maximale est exclue : Random.Range(1, 7) lance un dé, de 1 à 6. Pour inclure un nombre, demande le nombre suivant. Avec les nombres à virgule flottante, la fonction renvoie des nombres comme 3.62, et non le milieu d’une case.

Sur un plateau de côté 4, les colonnes vont de -4 à 4 :

int x = Random.Range(-4, 5);   // de -4 à 4

Le plateau ne contient qu’un seul aliment à la fois, alors le jeu le crée une fois, dans Start(), et le déplace chaque fois qu’il lui faut un nouvel emplacement. GameManager lit la taille du plateau dans le champ snake du serpent, via son edge.

challenge icon

Défi

Moyen

Place la nourriture sur une case aléatoire du plateau.

  1. Dans GameManager, ajoute public Snake snake;, public GameObject foodPrefab; et private Transform food; (la scène relie les deux premiers).
  2. Dans Start(), food = Instantiate(foodPrefab).transform;, puis appelle MoveFood().
  3. void MoveFood() : place la nourriture à des coordonnées x et z aléatoires, chacune allant de -snake.edge à snake.edge, et avec y égal à 0.

Clique sur « Jouer » : une sphère rouge se trouve sur une case, à un nouvel emplacement à chaque fois. Puis clique sur « Vérifier ».

Essayez vous-même

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Gère le jeu : la nourriture, le score et la fin de partie. Le chapitre 2 en complète le contenu.
}

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

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