slop game oder so

This commit is contained in:
2026-09-24 17:57:54 +02:00
commit 4c997eee21
166 changed files with 14976 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
/**
* Hilfen für Phaser-Tastaturereignisse.
* @module systems/keyboard
*/
/**
* Lässt jedes KeyboardEvent nur einmal zum Handler durch.
*
* Warum: Phaser 3.90 verarbeitet bei jedem neuen DOM-Tastaturereignis die gesamte
* Warteschlange des aktuellen Frames erneut und leert sie erst am Frame-Ende. Treffen
* drei oder mehr Tastenereignisse innerhalb eines Frames ein (schnelles Tippen, oder
* die automatische Wiederholung der gehaltenen Q-Taste während einer Befehlseingabe),
* meldet Phaser dasselbe `keydown` mehrfach. Für Orbital-Befehle hieße das: Aus
* „↓“ wird „↓ ↓“ und die Eingabe schlägt fehl. Das Ereignisobjekt selbst ist dabei
* identisch – daran erkennen wir Wiederholungen zuverlässig.
*
* @template {KeyboardEvent} E
* @param {(event: E) => void} handler
* @returns {(event: E) => void}
*/
export function oncePerEvent(handler) {
const seen = new WeakSet();
return (event) => {
if (event && typeof event === 'object') {
if (seen.has(event)) return;
seen.add(event);
}
handler(event);
};
}