import std.crt_raw;
Low-level Raw-Terminal-I/O: Non-blocking Tastatureingabe, Raw-Modus-Umschaltung. Erweitert std.crt um direkte Terminal-Steuerung ohne Zeilenpufferung.
Experimentell: Benötigt dynamisches Linking mit libc (tcgetattr/tcsetattrvia@extern). Plattform: Linux x86-64.
| Funktion | Signatur | Beschreibung |
|---|---|---|
SetRawMode | (enabled: bool): int64 | Schaltet Terminal in Raw-Modus (kein Echo, keine Zeilenpufferung) |
KeyPressed | (): bool | Prüft nicht-blockierend ob eine Taste gedrückt wurde |
ReadKeyRaw | (): int64 | Liest ein Byte von stdin; -1 bei Fehler oder EOF |
import std.crt_raw;
fn WaitForKey(): int64 {
SetRawMode(true);
var k: int64 := ReadKeyRaw();
SetRawMode(false);
return k;
}
import std.crt_raw;
fn InputLoop(): void {
SetRawMode(true);
var running: bool := true;
while (running) {
if (KeyPressed()) {
var k: int64 := ReadKeyRaw();
if (k = 113) { running := false; } // 'q' = beenden
}
// ... restliche Spiellogik / Verarbeitung ...
}
SetRawMode(false);
}
SetRawMode und KeyPressed sind aktuell Platzhalter (-1 / false). Die vollständige termios-Implementierung ist plattformspezifisch und noch nicht integriert.@extern-Funktionen (tcgetattr, tcsetattr, select, ioctl) — erfordert dynamisches Linking mit libc.read(0, buf, 1).sys_ioctl und TCGETS/TCSETS auf dem Terminal-fd implementieren.Letzte Aktualisierung: 2026-06-06