Diese Seite enthält den Stoff einer Doppelstunde (2 × 45 Minuten) der Luanti-Programmier-AG. Ziel: den 3D-Raum von Minetest verstehen und eigene Chat-Befehle mit Lua programmieren.
Was | Wofür? |
---|---|
Koordinaten (x y z ) | Jedes Objekt besitzt eine Position: x → Osten / Westen, y → Höhe, z → Norden / Süden. Nullpunkt ist (0 0 0) . |
Vektor | Tabelle {x=…, y=…, z=…} . Viele API-Funktionen erwarten oder liefern solche Tabellen. |
player:get_pos() | Liefert die aktuellen Koordinaten des Spielers. |
player:set_pos(pos) | Teleportiert den Spieler an eine Position. |
minetest.register_chatcommand() | Erstellt einen Befehl /name . Wichtige Felder: params , description , privs , func(name,param) . |
minetest.get_player_by_name() | Gibt das Spieler-Objekt zu einem Namen zurück. |
minetest.pos_to_string(pos[,prec]) | Formatiert einen Positions-Vektor als lesbaren Text. |
vector.add(v1,v2) | Addiert zwei Vektoren (z. B. aktuelle Position + Delta). |
vector.distance(v1,v2) | Liefert die Distanz zweier Punkte in Metern. |
vector.round(v) | Rundet jede Koordinate auf ganze Zahlen. |
minetest.set_node(pos,{name="…"}) | Platziert (oder ersetzt) einen Block an pos . |
minetest.sound_play(name,spec) | Spielt einen Sound (z. B. beim Teleport). |
minetest.get_connected_players() | Liste aller aktuell verbundenen Spieler. |
minetest.colorize(farbe,text) | Färbt Chat-Text in der angegebenen Farbe ein. |
Tipp: Gewähre den Kindern testweise die Privilegien shout
und teleport
, damit sie frei experimentieren können.
Jede Aufgabe baut auf der vorherigen auf und festigt das Verständnis.
# | Ziel | Technische Schritte | Erweiterungsideen |
---|---|---|---|
1. „Mein GPS“ – /pos |
Position des Spielers ermitteln und im Chat ausgeben. |
|
|
2. „Ein Schritt vorwärts“ – /step <dx> <dy> <dz> |
Parameter lesen & relative Bewegung. |
|
|
3. „Wir bauen einen Turm“ – /pillar <höhe> |
Schleifen & Blöcke setzen. |
|
|
4. „Wie nah sind wir?“ – /distance <spieler> |
Distanz zwischen zwei Spielern berechnen. |
|
|
/step
& /pillar
./distance
mit TOP-3-Liste zuerst?Schreibe /cube <größe>
, der einen hohlen Würfel mit Mittelpunkt an deiner Position baut (ungerade 3–15).