Level 1 – Grundlagen

Coordinates & Positions: Dich im Raum orientieren

Lehrer-Hinweise (Koordinaten)

Level-Empfehlung: Klasse 6–8, Level 2 (Grundlagen)

Lernziel: Die 3D-Welt als Zahlenraum (X, Y, Z) verstehen und einfache Aktionen (core.set_node) zuordnen.

In diesem Kapitel lernst du, wie Luanti / Minetest die Welt als Zahlen beschreibt. Du verstehst, was X, Y, Z bedeuten, wie du deine aktuelle Position findest und wie du Koordinaten in Mods benutzt.

1. Was sind Koordinaten?

Eine Koordinate ist eine Art Adresse im 3D-Raum. Statt „Das Haus steht neben dem Baum“ sagt der Computer: „Das Haus steht bei (x, y, z)“.

In Luanti / Minetest benutzt du drei Zahlen:

Didaktik-Hinweis

Im Unterricht hilft eine einfache Eselsbrücke:
X = „X-Achse wie ein Pfeil nach rechts“, Y = „Y wie Y-Achse nach oben“, Z = „Z wie zurück / vorwärts“.

2. Koordinaten im Spiel sehen

Luanti / Minetest zeigt dir deine aktuelle Position im Debug-/Info-Bereich an. Je nach Konfiguration kannst du:

Dort findest du Zeilen wie:

Beispielanzeige im Debug-Fenster
pos: (12.0, 8.5, -34.0)

Das bedeutet:

3. Spielerposition vs. Blockposition

Spielerpositionen haben oft Nachkommastellen (z. B. 8.5). Blöcke dagegen sitzen auf ganzzahligen Koordinaten (… -1, 0, 1, 2 …).

Wenn du in Lua mit Blöcken arbeitest, brauchst du meistens ganze Zahlen. Darum rundet man die Spielerposition auf den nächstliegenden Block:

Lua: Spielerposition auf Block-Koordinate runden
local player = core.get_player_by_name(name)
if not player then
    return
end

local pos = player:get_pos()

-- Auf ganze Blöcke runden:
pos.x = math.floor(pos.x + 0.5)
pos.y = math.floor(pos.y + 0.5)
pos.z = math.floor(pos.z + 0.5)

Jetzt kannst du pos benutzen, um an exakt dieser Blockposition etwas zu setzen oder zu prüfen.

Didaktik-Hinweis

Hier kannst du einen kurzen Mathe-Einschub machen: Was bedeutet „aufrunden“? Lass die Schüler:innen selbst überlegen, was math.floor(x + 0.5) macht.

4. Blöcke mit Koordinaten setzen

Mit core.set_node(pos, node) kannst du an der Position pos einen Block setzen oder ersetzen.

4.1 Einfaches Beispiel: Ein Block unter dem Spieler

Der folgende Code-Ausschnitt setzt einen Steinblock direkt unter die Füße des Spielers:

Lua: Steinblock direkt unter den Spieler setzen
local player = core.get_player_by_name(name)
if not player then
    return
end

local pos = player:get_pos()

-- Auf Blockkoordinaten runden:
pos.x = math.floor(pos.x + 0.5)
pos.y = math.floor(pos.y + 0.5)
pos.z = math.floor(pos.z + 0.5)

-- Einen Block tiefer:
local under = {
    x = pos.x,
    y = pos.y - 1,
    z = pos.z,
}

core.set_node(under, { name = "default:stone" })

In deinem späteren Beispiel-Mod (Plattform unter dem Spieler) verwendest du denselben Trick, nur mit einer kleinen Fläche aus mehreren Blöcken.

5. Koordinaten in Schleifen: kleine Plattform

Mit einer Schleife kannst du mehrere Blöcke in einem Bereich setzen – zum Beispiel eine 3×3-Plattform unter dem Spieler:

Lua: 3×3-Plattform unter dem Spieler
for dx = -1, 1 do
    for dz = -1, 1 do
        core.set_node(
            { x = pos.x + dx, y = pos.y - 1, z = pos.z + dz },
            { name = "default:stone" }
        )
    end
end

Hier entstehen 9 Blöcke:

Didaktik-Hinweis

Lass die Schüler:innen zuerst auf Papier ein Koordinatenraster zeichnen (x und z) und die Punkte (-1, 0, 1) markieren. Dann verstehen sie besser, warum 9 Blöcke entstehen und wie Schleifen und Koordinaten zusammenhängen.

6. Mini-Aufträge für Schüler:innen

Bearbeite die Aufgaben und teste sie in einer eigenen Welt:

  1. Finde deine Position im Spiel (Debug-/Info-Anzeige) und schreibe die Werte für X, Y und Z in dein Heft.
  2. Überlege dir 3 Positionen (Koordinatenpaare), an denen du gerne einen besonderen Block hättest (z. B. eine Fackel oder einen Diamantblock).
  3. Nutze in einem Test-Mod core.set_node, um an einer deiner Positionen einen Block zu setzen.
  4. Verändere im 3×3-Plattform-Beispiel die Schleifenwerte, sodass eine 5×5-Plattform entsteht. Welche Zahlen musst du ändern?
Erweiterungsidee

Als Projekt können die Schüler:innen ein „Koordinaten-Spiel“ entwickeln: Der Lehrer nennt Koordinaten, die Spieler:innen müssen dorthin laufen und dort einen Block setzen oder einen Schalter aktivieren.

7. Wie geht es weiter?

Jetzt weißt du, wie Koordinaten funktionieren, wie du deine Position im Spiel findest und wie du Blöcke per Lua an bestimmte Stellen setzt. Im nächsten Schritt verpacken wir diese Ideen in einen Chatbefehl – zum Beispiel, um auf Knopfdruck eine Plattform zu erzeugen.