BoundfoxStudios / fairy-tale-defender

Boundfox Studios Community-Projekt - Entwicklung eines Tower Defense Spiels
https://docs.fairytaledefender.de/
MIT License
20 stars 24 forks source link

Input Actions zur Laufzeit neue Hotkeys zuweisen #489

Closed M4lph closed 3 months ago

M4lph commented 3 months ago

Über das Settings Menü kann nun unter dem Reiter "Controls" verschiedenen Input Actions eine neue Belegung zugewiesen werden. Hierzu kann ein Button angeklickt werden, dessen Beschriftung die momentane Belegung anzeigt und während einer Neuzuweisung temporär "..." anzeigt um dem Spieler Feedback zu geben dass eine neue Belegung erwartet wird. Der Vorgang kann mit der rechten Maustaste abgebrochen werden.

Gespeichert werden die Belegungen mit Hilfe einer Extensionmethode die für eine Action sämtliche Bindings als JSON formatiert speichert. Dies ist jedoch nicht unbedingt gut leserlich für Menschen in der config.json, da hier dann eher anhand einer ID unterschieden wird. Sollte ich dies noch ändern, für eventuelle Debug Zwecke o.Ä.? Um UI etwas mehr von der Logik zu trennen, und um die eigentliche Rebind Funktion nicht auch in den InputReader zu packen, habe ich einen "InputManager" als SO erstellt. Sollte man hier vllt doch einfach eine statische Klasse daraus machen?

closes #438