Joystick Event
-
Hi Leute,
versuche gerade ein Joystick- Event in mein Programm zu integrieren.
Würde gerne per Joystick- Button einen Switchbefehl durchführen.
Weiß jemand vielleicht ne passende lib oder hat evtl. ne Beispiel für mich wie sowas aussieht?
Thx
-
zB kannst du die SDL dafür nutzen: http://www.libsdl.org/docs/html/guideinput.html
-
Danke für den Link. Hat mir weitergeholfen.
Nur leider habe ich ein Problem beim compilieren. Hab die SDL in mein Programm eingebunden, dem Linker eingegeben wo er die SDL.lib findet und der Build hat keinen Fehler angezeigt. Aber wenn ich debugge, hängt sich das Programm auf und folgender Fehler erscheint: Die Anwendung konnte nicht gestartet werden, weil die SDL.dll nicht gefunden wurde.
Hab den Pfad extra mehrmals geprüft und im Ordner nachgeschaut, ob die dll enthalten ist, was sie auch ist.
Bin absolut ratlos...
Vielleicht eine Idee?
-
Dann kopiere mal die sdl.dll in dein Projektverzeichnis o. Debugverzeichnis vllt. starten dein Programm.
-
Danke für den Tipp. Hatte ich dann auch schon probiert und hat funktioniert. Nur leider erkennt das Programm zwar den Joystick (gibt dessen Name und die Anzahl der Buttons aus), nur der Button Event macht mir noch Probleme. In der SDL ist eine Funktion die registrieren soll, ob ein Button, welchen man über eine Zahl festlegen kann, gedrückt wird. Nur funktioniert diese nicht richtig, d.h es passiert nichts ,obwohl ich den Button drücke.
Jemand ne Idee?
-
Kenne mich mit SDL zwar nicht aus, aber zeig mal dein Codeabschnitt für die Buttonabfrage.
-
if (SDL_JoystickGetButton(joystick,3 ) == 1)
{
...
}
Die Funktion müsste 1 zurückgeben, sobald ich die dritte Taste drücke. So steht es zumindest in der API.
-
Und dein Joystick wird vorher auch geöffnet?
Hast schon mal probiert ob hier was ausgegeben wird?SDL_Joystick *joy; // Initialize the joystick subsystem SDL_InitSubSystem(SDL_INIT_JOYSTICK); // Check for joystick if(SDL_NumJoysticks()>0){ // Open joystick joy=SDL_JoystickOpen(0); if(joy) { printf("Opened Joystick 0\n"); printf("Name: %s\n", SDL_JoystickName(0)); printf("Number of Axes: %d\n", SDL_JoystickNumAxes(joy)); printf("Number of Buttons: %d\n", SDL_JoystickNumButtons(joy)); printf("Number of Balls: %d\n", SDL_JoystickNumBalls(joy)); } else printf("Couldn't open Joystick 0\n"); // Close if opened if(SDL_JoystickOpened(0)) SDL_JoystickClose(joy); }
-
Ja, der Joystick wird erkannt. Hab extra dafür ne Kontrolle eingebaut, die mir den Namen des Joystick und die Anzahl seiner Knöpfe zurück gibt.