Menu
CoddyTech

El tablero

Lección 1 de 14 del curso Juego de Unity: Serpiente 3D de Coddy.

En este curso construirás Snake en 3D: una serpiente de cubos en un tablero de 15 por 15 visto desde arriba. Se mueve una celda a la vez, gira con las flechas o WASD, come, crece y muere al chocar con las paredes o con su propia cola. Snake controla la cabeza; GameManager permanece vacío hasta que aparezca la comida. «Jugar» ejecuta el juego; «Comprobar» evalúa el código.

Las celdas tienen una unidad de ancho y están en números enteros de -7 a 7. La serpiente nunca se desliza: salta una celda entera en cada tic, un intervalo fijo, y permanece quieta entre ellos. Un intervalo es un temporizador: suma Time.deltaTime en cada fotograma y, cuando alcanza el intervalo, actúa y resta el intervalo:

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

Restar el intervalo, en lugar de poner el temporizador en 0, conserva la fracción del fotograma que lo sobrepasó, para que el intervalo no se retrase. Usa el campo tick, no un número.

challenge icon

Desafío

Fácil

Haz que la cabeza avance una celda en cada tic.

  1. En Snake, añade private float timer;
  2. En Update(), añade Time.deltaTime a timer; cuando timer >= tick, réstale tick y llama a Step().
  3. En Step(), añade direction a transform.position.

Pulsa «Jugar»: la cabeza avanza hacia la derecha, celda por celda, y por ahora sale del tablero. Después, pulsa «Comprobar».

Pruébalo tú mismo

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // segundos entre dos pasos
    private Vector3 direction = Vector3.right;

    void Update()
    {
        // Cada tick segundos, ejecuta Step() una vez
    }

    void Step()
    {
        // Mueve la cabeza una celda en la dirección de direction
    }
}

Todas las lecciones de Juego de Unity: Serpiente 3D

Practica por tu cuenta: Playground de Unity