Menu
CoddyTech

Comida

Lição 5 de 14 do curso Jogo de Cobra 3D na Unity da Coddy.

A comida fica em uma célula aleatória. As células são números inteiros, então escolha x e z com a versão int de Random.Range. Com números inteiros, o máximo é excluído: Random.Range(1, 7) lança um dado, de 1 a 6, nunca 7. Para incluir um número, peça um a mais do que ele.

Com argumentos do tipo float, Random.Range retorna qualquer número entre eles, como 3.62, que não fica no meio de uma célula; assim, a cobra nunca encontraria a comida. Um baú em uma grade de 10 por 10 com células de 0 a 9:

int row = Random.Range(0, 10);      // 0 a 9
int column = Random.Range(0, 10);
chest.position = new Vector3(column, 0f, row);

O tabuleiro contém uma comida por vez, então o jogo a cria uma vez, em Start(), e a move sempre que precisa de um novo lugar. GameManager é responsável pela comida e lê o tamanho do tabuleiro a partir de edge da cobra, por meio de um campo snake.

challenge icon

Desafio

Médio

Preencha GameManager. A cena define snake como a Snake da cabeça e foodPrefab como uma esfera vermelha.

  1. Adicione public Snake snake;, public GameObject foodPrefab; e private Transform food;.
  2. Em Start(), instancie foodPrefab, mantenha seu Transform em food e chame MoveFood().
  3. Escreva void MoveFood(): ele coloca food em uma célula aleatória, com x e z cada um entre -snake.edge e snake.edge, e y igual a 0.

Pressione Play e encontre a comida no tabuleiro; depois, pressione Check.

Experimente você mesmo

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Gerencia o jogo: a comida, a pontuação e o fim de jogo. O Capítulo 2 completa essa parte.
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Jogo de Cobra 3D na Unity