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.
Aufgabe
EinfachLass den Kopf bei jedem Tick ein Feld weiterschreiten.
- Füge in
Snakeprivate float timer;hinzu. - Füge in
Update()Time.deltaTimezum Timer hinzu; wenntimer >= tickgilt, ziehe tick davon ab und rufeStep()auf. - Füge in
Step()directionzutransform.positionhinzu.
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