Level 2 – Richtungs-Demo

Richtungs-Demo: Blick, Einheitsvektor & „Null“-Fall

Mit dieser Mini-Spielwiese kannst du die Drehung des Spielers (Yaw) in einen Richtungsvektor übersetzen. Das entspricht player:get_look_dir() in Luanti, wenn die Kamera waagerecht schaut. Drehe den Slider oder nutze die Buttons, um zu sehen, wie sich Vorwärts- und Rechts-Vektor ändern.

Merksatz

Bei Yaw 0 zeigt der Spieler nach +Z. Der Vorwärtsvektor ist dann (0, 0, 1). Rechts zeigt auf (1, 0, 0).

Drehe den Kreis: 0° zeigt nach +Z (oben).

Vorwärts (x, z): (0.00, 1.00)
Rechts (x, z): (1.00, -0.00)
Länge Vorwärts: 1.00
Einheitsvektor OK. (y wird für den Brückenbau auf 0 gesetzt)

Wie wird der Vektor berechnet?

In der Ebene (ohne Pitch) gilt in Luanti: forward.x = -sin(yaw), forward.z = cos(yaw). Danach wird auf Länge 1 normalisiert. Der Rechts-Vektor entsteht durch eine 90°-Drehung: (z, -x).

Lua: 2D-Vektor aus Yaw
local yaw = player:get_look_horizontal()
local forward = { x = -math.sin(yaw), y = 0, z = math.cos(yaw) }
forward = vector.normalize(forward) -- wird Einheitsvektor
local right = { x = forward.z, y = 0, z = -forward.x }