First Person Controller

This commit is contained in:
2026-06-14 16:20:47 +02:00
parent 902da64588
commit a8bfaaee36
9 changed files with 921 additions and 38 deletions
+4 -2
View File
@@ -226,7 +226,9 @@ pub(crate) fn layout(internal: [f32; 2], fonts: &Fonts, session: &Session, cur:
// Maus (im Dialog ist die Maus ohnehin nie gefangen).
if !cur.grabbed {
match &session.mode {
Mode::Free => {} // freie Welt: nur HUD/Cursor, kein Panel
// Spiel und Flycam: nur HUD/Cursor, kein Panel (beide laufen
// ohnehin gefangen — dieser Zweig greift nur im Übergang).
Mode::Play | Mode::Free => {}
Mode::Menu => menu(&mut ui, f, internal, cur.pos, &mut hover),
Mode::Dialog(d) => dialog(&mut ui, f, internal, d, cur.pos, &mut hover),
}
@@ -247,7 +249,7 @@ pub(crate) fn layout(internal: [f32; 2], fonts: &Fonts, session: &Session, cur:
/// Menu-Modus: das (noch demohafte) Menü, zentriert.
fn menu(ui: &mut Ui, f: &Font, internal: [f32; 2], cur: [f32; 2], hover: &mut Option<String>) {
let items = [
("Fortsetzen", "menu"), // schließt das Menü (Toggle zurück zu Free)
("Fortsetzen", "menu"), // schließt das Menü → ins Spiel (Play)
("Hilfe", "help"),
("KV anzeigen", "kv"),
("Beenden", "quit"),