Menu
CoddyTech

Das Spielfeld

Lektion 1 von 14 im Kurs Unity-Spiel: 3D-Snake von Coddy.

In diesem Kurs baust du Snake in 3D: eine Schlange aus Würfeln auf einem 15 mal 15 Felder großen Brett, von oben gesehen. Sie bewegt sich jeweils um ein Feld, biegt mit den Pfeiltasten oder WASD ab, frisst, wächst und stirbt an den Wänden oder ihrem eigenen Schwanz. Snake steuert den Kopf; GameManager bleibt leer, bis das Futter kommt. Mit „Spielen“ wird das Spiel gestartet; „Prüfen“ bewertet deinen Code.

Die Felder sind eine Einheit breit und liegen auf ganzen Zahlen von -7 bis 7. Die Schlange gleitet nie: Bei einem Tick, einem festen Takt, springt sie um ein ganzes Feld und bleibt dazwischen stehen. Ein Takt wird durch einen Timer bestimmt: Addiere in jedem Frame Time.deltaTime, und wenn der Timer den Takt erreicht, führe eine Aktion aus und ziehe den Takt ab:

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

Wenn du den Takt abziehst, statt den Timer auf 0 zu setzen, bleibt der Teil eines Frames erhalten, der über den Takt hinausging, sodass sich der Takt nicht nach hinten verschiebt. Verwende das Feld tick, keine Zahl.

challenge icon

Aufgabe

Einfach

Lass den Kopf bei jedem Tick ein Feld weiterschreiten.

  1. Füge in Snake private float timer; hinzu.
  2. Füge in Update() Time.deltaTime zum Timer hinzu; wenn timer >= tick gilt, ziehe tick davon ab und rufe Step() auf.
  3. Füge in Step() direction zu transform.position hinzu.

Drücke „Spielen“: Der Kopf bewegt sich vorerst Feld für Feld nach rechts vom Spielfeld herunter. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // Sekunden zwischen zwei Schritten
    private Vector3 direction = Vector3.right;

    void Update()
    {
        // Alle tick Sekunden einen Step() ausführen
    }

    void Step()
    {
        // Den Kopf um eine Zelle in Richtung direction bewegen
    }
}

Alle Lektionen in Unity-Spiel: 3D-Snake

Übe selbstständig: Unity-Playground