Es ist einfach mit joyGetPosEx Funktion als Abfragen der Joystick / Controller Position unter Windows zu verwenden!Benötigt Wird:
Kennung des abzufragenden Joysticks. Gültige Werte für uJoyID reichen von Null JOYSTICKID1 bis 15. Und:
Zeiger auf eine JOYINFOEX Struktur, die erweiterte Positionsinformationen und den Schaltflächen-Status des Joysticks enthält. Sie müssen die Mitglieder dwSize und dwFlags festlegen, sonst schlägt joyGetPosEx fehl. Die von joyGetPosEx zurückgegebenen Informationen hängen von den Flags ab, die Sie in dwFlags angeben.
Lange Rede kurzes Beispielprogramm: Dieser C++-Code verwendet die Windows Multimedia-Funktionen, um Joystick- oder Controller-Eingabedaten zu überwachen und auf der Konsole anzuzeigen. Hier ist eine Beschreibung des Codes mit Kommentaren: #include <iostream> #include <windows.h> #include <tchar.h> using namespace std; #pragma comment(lib, "winmm.lib") int _tmain(int argc, _TCHAR* argv[]) { JOYINFOEX info; info.dwFlags = JOY_RETURNALL; while (JOYERR_NOERROR == joyGetPosEx(JOYSTICKID1, &info)) { // Löscht die Konsole, um die neuen Joystick-Daten anzuzeigen. system("cls"); cout << "Xpos:\t" << info.dwXpos << endl; // X-Position des Joysticks cout << "Ypos:\t" << info.dwYpos << endl; // Y-Position des Joysticks cout << "Zpos:\t" << info.dwZpos << endl; // Z-Position des Joysticks cout << "Rpos:\t" << info.dwRpos << endl; // R-Position des Joysticks cout << "Upos:\t" << info.dwUpos << endl; // U-Position des Joysticks cout << "Vpos:\t" << info.dwVpos << endl; // V-Position des Joysticks cout << "Buttons:\t" << info.dwButtons << endl; // Status der Joystick-Tasten cout << "ButtonNumber:\t" << info.dwButtonNumber << endl; // Anzahl der Joystick-Tasten cout << "POV:\t" << info.dwPOV << endl; // Position des POV (Point of View)-Schalters } cout << "Kein Joystick / Controller angeschlossen" << endl; return 0; } Dieser Code verwendet die joyGetPosEx-Funktion, um Joystick- oder Controller-Daten abzurufen und in einer Schleife kontinuierlich auf der Konsole anzuzeigen. Er zeigt die Positionen der verschiedenen Achsen (X, Y, Z, R, U, V), den Status der Joystick-Tasten, die Anzahl der Tasten und die Position des POV-Schalters an. Wenn kein Joystick oder Controller angeschlossen ist, gibt der Code die Meldung "Kein Joystick / Controller angeschlossen" aus. Beachten Sie, dass die Verwendung von joyGetPosEx eine geeignete Joystick-Hardware erfordert. Auf MSN: joyGetPosEx-Funktion und JOYINFOEX! Der Standard-Joystick-Treiber unterstützt derzeit diese fünf diskreten Richtungen. Wenn eine Anwendung nur die definierten Sichtwerte akzeptieren kann, muss sie das Flag JOY_RETURNPOV verwenden. Wenn eine Anwendung andere Gradwerte akzeptieren kann, sollte sie das Flag JOY_RETURNPOVCTS verwenden, um fortlaufende Daten zu erhalten, sofern diese verfügbar sind. Das Flag JOY_RETURNPOVCTS unterstützt auch die Konstanten JOY_POV, die mit dem Flag JOY_RETURNPOV verwendet werden. FAQ 20: Aktualisiert am: 1 November 2023 12:30 |