Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 02.09.2006, 17:01 Titel: XBOX360 Joypad für PC über DirectX einbinden |
|
|
Hi all!
habe gerade ein ganz brand eiliges Problem. Ich habe keinerleih erfahrungen mit Josstick und Joypad einbindung, und benutze bisher die Tastatur und die Maus über DirectX input. Jetzt muß ich meine Spielbare Demo bis Dienstag so umschreiben das ich sie mit einem XBOX360 controller steuern kann. Spielintern ist das kein ding, hab nur keine Ahnung vom Interface ich probier jetzt gleich nach Microsoft Beispielen los, wäre aber froh wenn mir irgend wer einfache Muster aus eigenen Programmen oder technische assistenz geben könnte. Ich brauche zwei stufenlose sticks einen links und rechts zur kontrolle, plus möglichst viele tasten. Mein xbox controller kommt via express montag an. Bis dahin probier ich mit einem billigen Speed link joypad.
Starte jetzt den ersten anlauf, bis gleich
RayJunx _________________ Just a Freak |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 02.09.2006, 18:01 Titel: hi |
|
|
hi!
Das war wirklich leichter wie gedacht. es Funktioniert schon, hat gar keine probleme gegeben. jetzt brauch ich noch den xbox360 controller dann kann ich den rest machen. ich habe nur das problem das er keine zwischenstufen in den achsen erkennt und mir nur 1000, 0 oder -1000 anzeigt in X und Y achse. aber das liegt glaube ich bestimmt an meinem billig joypad. der wirds sogar ohne zwischensprünge in der systemsteuerung - joypad justage dingsbums angezeigt. nur totale werte. schrott teil.
Die Tasten habe ich mir auch schon geangelt. nur komme ich dank des billig joypads nicht an den rechts angebrachten joystick auf dem pad ran. aber ich vermute ich finde die werte für die zweite achse dort:
erste achse: "funktioniert"
LONG lX;
LONG lY;
LONG lZ;
zweite achse: "offenbar nur tod weil billigstick ohne treiber und einstellmöglichkeit"
LONG lVX;
LONG lVY;
LONG lVZ;
hier trotzdem mal der kernteil der joystick definition, glaube nicht das der fehler der absoluten achsenwerte in ihm liegt aber ich zeig den code dennoch mal:
Code: |
// Joystick-Bereich bestimmen
DIPROPRANGE JoystickRange;
ZeroMemory(&JoystickRange,sizeof(JoystickRange));
JoystickRange.diph.dwSize = sizeof(JoystickRange);
JoystickRange.diph.dwHeaderSize = sizeof(DIPROPHEADER);
// Setzen der Werte für die X-Achse
JoystickRange.diph.dwObj = DIJOFS_X;
JoystickRange.diph.dwHow = DIPH_BYOFFSET;
JoystickRange.lMin = -1000;
JoystickRange.lMax = 1000;
|
_________________ Just a Freak |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 02.09.2006, 18:49 Titel: |
|
|
Dein Joypad hat keinen MiniJoystick, sondern quasi nur 8 Richtugnstasten. Da ist es klar, dass es keine zwischenwerte gbit. Ein Joystick oder ein gescheites Joypad sollte diese Funktion haben. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 03.09.2006, 13:58 Titel: Noch ein problem |
|
|
Hi all!
so wies aussieht habe ich jetzt nur noch ein problem, die initierung meiner joypad eingabe sieht offenbar nur eine X und Y achse vor, mein pad hat aber mehrere. Jemand ne ahnung wie ich den Code ergänzen kann so das ich danach auf die entsprechenden Achswerte zugreifen kann?
DirectJoypadX1=JoystickState.lX; // erste joystick, links, auf dem pad
DirectJoypadY1=JoystickState.lY;
DirectJoypadX2=JoystickState.lVX; // zweiter, rechter joystick auf dem pad
DirectJoypadY2=JoystickState.lVY;
ersteres funktioniert, die zweiten variablen spucken mir immer null aus
Code: |
// Joystick-Bereich bestimmen
DIPROPRANGE JoystickRange;
ZeroMemory(&JoystickRange,sizeof(JoystickRange));
JoystickRange.diph.dwSize = sizeof(JoystickRange);
JoystickRange.diph.dwHeaderSize = sizeof(DIPROPHEADER);
// Setzen der Werte für die X-Achse
JoystickRange.diph.dwObj = DIJOFS_X;
JoystickRange.diph.dwHow = DIPH_BYOFFSET;
JoystickRange.lMin = -1000;
JoystickRange.lMax = 1000;
// DIPROP_RANGE - Bereich der Achsen
if(FAILED(lpDIJoystick->SetProperty(DIPROP_RANGE, &JoystickRange.diph)))
{
MessageBox(hWnd,"Fehler beim Setzen der Joystickeigenschaften (X-Achse)","Fehler",MB_OK);
return FALSE;
}
// Setzen der Werte für die Y-Achse (gleiche Werte wie für X)
JoystickRange.diph.dwObj = DIJOFS_Y;
if(FAILED(lpDIJoystick->SetProperty(DIPROP_RANGE, &JoystickRange.diph)))
{
MessageBox(hWnd,"Fehler beim Setzen der Joystickeigenschaften (Y-Achse)","Fehler",MB_OK);
return FALSE;
}
// Zugang zum Joystick verschaffen
lpDIJoystick->Acquire();
|
weiß irgend jemand rat? schonmal tausend dank im vorraus, und gruß an alle progger da drausen
RayJunx _________________ Just a Freak |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 03.09.2006, 18:36 Titel: |
|
|
hab irgendwo aufgeschnapt das ich dafür quasie einen zweites joystick objekt anlegen muß evtl... _________________ Just a Freak |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 03.09.2006, 18:53 Titel: |
|
|
Ich weiß das es 2 vershcieden komplexe Joysticks gibt:
DIJOYSTATE
DIJOYSTATE2
Die zweite Version kann Joysticks mit viel mehr Achsen und Knöpfen und was weiß ich was abfragen. Einfach mal gucken, in der Doku suchen, evlt. hilft das ja. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 04.09.2006, 14:31 Titel: |
|
|
habs hinbekommen! war garnicht so schwer steckt alles in den variablen drin auch die zweite achse des xbox controllers.
ist nur etwas tricky weil die R2 und L2 taste keine buttons sondern regler sind die sich dummerweiße sogar eine variable teilen. wenn ich beide betätige habe ich also nen wert von 0 bzw keinen ausschlag *lol* aber vielleicht gibts da ne zweite variable bei der die buttons als tasten wieder gegeben werden... mal gucken
also danke nochmal jungs, brauch definitiv keine hilfe mehr
*wink*
bis bald
RayJunx _________________ Just a Freak |
|
Nach oben |
|
|
|