SDL: SDL_Event für L+R Maustaste gleichzeitig?
-
Hallo alle zusammen,
ich hoffe mal, dass ich hier mit meiner SDL-Frage richtig bin.Ich möchte es gerne erfahren, wenn der Benutzer die linke (SDL_BUTTON_LEFT) sowie die rechte (SDL_BUTTON_RIGHT) Maustaste gleichzeitig gedrückt hat. Gibt es dazu eine entsprechendes Event oder muss ich mir da eines selber zusammenbasteln?
-
glaub nicht, dass es sowas gibt. schau in mitgelieferte dokumentation, da sind alle events aufeglistet.
-
In der Doku hatte ich nichts gefunden, aber das heißt ja noch lange nicht, dass das nicht eingebaut ist

---
Meine momentane Lösung sieht wiefolgt aus:
=>Abfrage nach linker Maustaste
...
if(SDL_GetMouseState(NULL, NULL)&SDL_BUTTON(SDL_BUTTON_RIGHT))
{ => l+r Maustaste
}Das gleiche dann nocheinmal für die rechte Maustaste mit SDL_BUTTON(SDL_BUTTON_LEFT).
---
Das ganze funktioniert ganz gut, aber vielleicht gibt es noch eine elegantere Lösung...
-
Die SDL hat doch einen Callback-Mechanismus für Nachrichten wie Windows.
Ich würds so machen:
bool leftdown = false; //würdest in echt natürlich nicht global machen bool rightdown = false; //dito void Callbackfunktion( Event e ) { if( e == LEFTDOWN ) leftdown = true; if( e == LEFTUP ) leftdown = false; if( e == RIGHTDOWN ) rightdown = true; if( e == RIGHTUP ) rightdown = false; } bool left_and_r_down() { return leftdown && rightdown; }Ist halt je nachdem wie du den User-Input behandelst verschieden, aber ich würd einfach prüfen ob beide unten sind und keine komplexen Sachen wie du es jetzt hast bauen.