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 à 4Le 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.
Défi
MoyenPlace la nourriture sur une case aléatoire du plateau.
- Dans
GameManager, ajoutepublic Snake snake;,public GameObject foodPrefab;etprivate Transform food;(la scène relie les deux premiers). - Dans
Start(),food = Instantiate(foodPrefab).transform;, puis appelleMoveFood(). 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