Intro: Endlosschleife raus, Alt+Enter-Vollbild, kelloggs.ini

- Keine Endlosschleife mehr: nach der Titelbild-Animation bleibt das fertige,
  voll-farbige Titelbild STEHEN und die Titelmusik loopt weiter, bis Leertaste
  oder ESC das Programm beendet (neue wait_for_key()). run_once() laeuft nur
  noch einmal; scene_title haelt am Ende auf Tastendruck (hold_forever), --once
  haelt stattdessen kurz (fuer headless/Tests).
- ALT+ENTER schaltet zwischen Fenster- und Vollbildmodus um (SCALED-Display
  skaliert das 960x720-Logikbild sauber hoch). Zentrale Event-Behandlung in
  _process_event(); Zeichenroutinen holen die aktuelle Surface per
  pygame.display.get_surface(), damit das Neuerzeugen des Display-Modes beim
  Umschalten keinen veralteten Screen-Bezug hinterlaesst (screen-Parameter aus
  den Scenes entfernt).
- Vollbild-Zustand wird in kelloggs.ini gemerkt (load/save_fullscreen_pref) und
  beim naechsten Start wiederhergestellt; ohne kelloggs.ini = Fenstermodus.
  kelloggs.ini ist gitignored (pro-Rechner-Laufzeitzustand).

Verifiziert (headless): Config load/save, Alt+Enter-Toggle, Space/ESC,
wait_for_key(Space)->quit; python -m game --once exit 0 in ~17s.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
duffyduck
2026-07-24 01:49:47 +02:00
co-authored by Claude Opus 4.8
parent 7aea2fac26
commit 95e5b1edb4
3 changed files with 186 additions and 64 deletions
+15 -5
View File
@@ -51,13 +51,23 @@ sudo apt install python3-pygame python3-pil python3-numpy gcc
## Starten
```
python3 -m game # Intro in Endlosschleife (wie Original-Titelbildschirm)
python3 -m game --once # ein Durchlauf, dann beenden
python3 -m game # Intro; bleibt am Titelbild stehen (Musik loopt)
python3 -m game --once # Titelbild nur kurz halten (für Tests/headless)
```
Steuerung im Intro: **Leertaste** überspringt den aktuellen Screen, **ESC**
beendet das Intro. Ohne Soundkarte (z.B. headless) läuft das Spiel stumm weiter
statt abzustürzen.
Ablauf: Rauser → Factor5 → Kellogg's → Titelbild-Animation; danach bleibt das
fertige Titelbild stehen und die Titelmusik läuft in Schleife, bis eine Taste
das Programm beendet.
Steuerung:
- **Leertaste** — überspringt den aktuellen Intro-Screen (auf dem Titelbild
beendet sie das Programm)
- **ESC** — beendet das Programm
- **Alt+Enter** — zwischen Fenster- und Vollbildmodus umschalten; der Zustand
wird in `kelloggs.ini` gemerkt und beim nächsten Start wiederhergestellt
(Standard ohne `kelloggs.ini`: Fenstermodus)
Ohne Soundkarte (z.B. headless) läuft das Spiel stumm weiter statt abzustürzen.
Liegt `PCKELL.DAT` woanders, kann der Pfad per Umgebungsvariable gesetzt werden: