JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

XBOX360 Joypad für PC über DirectX einbinden

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
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

BeitragVerfasst am: 02.09.2006, 18:01    Titel: XBOX360 Joypad für PC über DirectX einbinden Antworten mit Zitat

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 Wink

RayJunx
_________________
Just a Freak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
RayJunx
JLI'ler


Alter: 43
Anmeldedatum: 16.01.2006
Beiträge: 130
Wohnort: Bayern
Medaillen: Keine

BeitragVerfasst am: 02.09.2006, 19:01    Titel: hi Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 02.09.2006, 19:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
RayJunx
JLI'ler


Alter: 43
Anmeldedatum: 16.01.2006
Beiträge: 130
Wohnort: Bayern
Medaillen: Keine

BeitragVerfasst am: 03.09.2006, 14:58    Titel: Noch ein problem Antworten mit Zitat

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 Wink

RayJunx
_________________
Just a Freak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
RayJunx
JLI'ler


Alter: 43
Anmeldedatum: 16.01.2006
Beiträge: 130
Wohnort: Bayern
Medaillen: Keine

BeitragVerfasst am: 03.09.2006, 19:36    Titel: Antworten mit Zitat

hab irgendwo aufgeschnapt das ich dafür quasie einen zweites joystick objekt anlegen muß evtl...
_________________
Just a Freak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 03.09.2006, 19:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
RayJunx
JLI'ler


Alter: 43
Anmeldedatum: 16.01.2006
Beiträge: 130
Wohnort: Bayern
Medaillen: Keine

BeitragVerfasst am: 04.09.2006, 15:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum