Eigaben verwalten



  • Hallo!
    Ich bin gerade am überlegen, und da hab ich gedacht ich stell die Frage gleich mal hier: Wie geht man am besten mit Benutzereigaben (Tastatur) um?
    Wie macht iht das?
    Ich hab mir überlegt, dass ich vielleicht Funktionszeiger benutze, aber des wäre dann halt auch etwas umständlich.
    Tasten sollten natürlich frei belegbar sein.

    So danke.



  • Ich nutze SDL, da kann man sich nen boolarray anschaffen, das gedrückte tasten mit true belegt. Das array kann man mit vordefinierten enums ansprechen. anstelle der Direkten enums kann man auch Variablen nehmen, die man aus einer Ini ausliest, oder man schreibt sich ein Programm, dass für Laufzeitfestlegung der Variablen zuständig ist, da ist SDL auch komfortabel, denn man kann im eventmanager fragen, ob eine taste gedrückt wird, und wenn ja auch welche.



  • Verwende intern einfach "Aktionen" und dann mappe eine Taste bzw. den KeyCode auf die Aktion, also ungefähr so:

    std::vector< Action > keyBindings;
    
    keyBindings[ currKeyCode ].doAction();
    

    Wenn du es variabel machen willst, dann kannst du tüfteln wie du willst, du wirst eine Indirektion drin haben. Und hier ist der Aufwand bloß eine offset-Berechnung.



  • Ja, danke, aber ich hab eigentlich nicht vor, SDL zu nutzen.
    Ich benutze OpenGL, und das hat ja keine Eingabeschnittstelle.Und bevor ich DirectSound nehm lass ichs lieber ganz bleiben.



  • DirectSound, genau 🙂


Anmelden zum Antworten