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: #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)) { system("cls"); cout<<"Xpos:\t"<<info.dwxpos<<endl; cout<<"Ypos:\t"<<info.dwypos<<endl; cout<<"Zpos:\t"<<info.dwzpos<<endl; cout<<"Rpos:\t"<<info.dwrpos<<endl; cout<<"Upos:\t"<<info.dwupos<<endl; cout<<"Vpos:\t"<<info.dwvpos<<endl; cout<<"Buttons:\t"<<info.dwbuttons<<endl; cout<<"ButtonNumber:\t"<<info.dwbuttonnumber<<endl; cout<<"POV:\t"<<info.dwpov<<endl; } cout<<"Kein Joystick / Controller angeschlossen"<<endl; return 0; } 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: 30 März 2020 17:59 |