ich hab an den USB Port ein Joypad angeschlossen, in der Systemsteuerung wird es auch richtig erkannt und beim testen funktionieren auch alle knöpfe...
Nur, wie kann ich jetzt aus Delphi heraus auf die eingaben des JoyPads reagieren??? *guckt unsicher*
Registriert: So Jun 23, 2002 12:37 Beiträge: 144
Programmiersprache: C/C++, Delphi
Ich glaub man kann dafür entweder Speicherstellen abfragen oder das mit ner Komponente regeln. Ich hab hier irgendwo noch n Beispiel rumfliegen glaub ich. Ich kann wohl mal gucken ob ich das hier irgendwo hab und dir das dann schicken.
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Es gibt 3 mir bekannte Möglichkeiten:
1 - Ports direkt abfragen, jedoch kann man dann nicht auf die neuen Eigenschaften zurückgreifen, weshalb einige Joysticks auch einen eigenen Treiber haben. Ausserdem braucht man aus Sicherheitsgründen bestimmte Treiber, um aus einer Anwendung direkt Ports abzufragen. (Win 2k, WinNT, WinXP) 2 - Unit MMSystem enthält Funktion für den Zugriff auf die Josticks. 3 - Verwenden von DirectInput
In der GLScene ist die Unit joystick.pas enthalten, die auch für sich alleine genutzt werden kann. Diese arbeitet über die Unit MMSystem, was ganz gut funktioniert. Der Nachteil ist, das dort nur standarisierte Funktionen, also max. 4 Buttons und 3 Achsen, abgefragt werden können. Daher habe Ich gerade die Unit DXInput aus DelphiX verwendet, weil dort zwischen DirectInput und der Verwendung MMSystem umgeschaltet werden kann. Die Unit DXInput kann nach kleineren Änderungen auch für sich alleine kompiliert werden. Leider kann ich im Moment keine Schalter bei aktivierten DirectX abfragen, die Achsen gehen jedoch. Bei der Verwendung MMSystem geht jedoch alles.
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Nein, das war eine Einschränkung der GLScene. Die Implementierung in DelphiX, verwendet unterem anderen auch die Unit MMSystem, waren mehr Buttons möglich. Mein Joystick hat 8 und die konnte ich alle abfragen.
bin grad dabei mich nen bissel darein zu finden... aber, schon die funktion joySetCapture meint dauernt das ich ne falsche JoystickID benutze.. hab alle IDs durchprobiert, keine geht...
Allerdings hab ich auch nen USB-Joystick, keinen Analogen... kann es daran liegen?? und.. was kann ich da machen?
In der MMSystem.pas sind zwar Konstanten für bis zu 32 Buttons definiert.. allerdings wird keine Message geschickt wenn z.B. Button5 gedrückt wird... muß man da evtl irgendwas erst einstellen?
also ich hab das gefühl das das MMSystem veraltet, bzw unausgereift ist...
denn zum einen gehen ja wie gesagt nur 4 von 12 Buttons... aber:
1.) Es kann zwar die Z-Position, allerdings nicht die Z-Rotation. 2.) Es kann so wie ich das sehe nur Digitale Buttons, keine analogen. 3.) Es kann (oder ich hab KA wie ) kein ForceFeedback.. bzw Rumbledingsda *g*
Bleibt mir da jetzt nurnoch DirectInput, oder mach ich einfach was falsch, bzw übersehe was???
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Die MMSystem ist nicht veraltet, sondern bietet halt ganz einfach nur rudimentären Joysticksupport, und da gehören Sachen wie analoge Buttons (obwohl ich bisher noch keinen Joystick mit nem analogen Button gesehen hab....) oder ForceFeedback und spezielle Achsen halt nicht dazu. Wenn du solche Features nutzen willst, dann wirste um DirectInput wohl nicht herumkommen!
P.S. : Ich glaub es vor Kurzem schonmal gesagt zu haben : Bitte nutz die EDIT-Funktionen anstatt dauernd neue Posts zu machen.Das hilft der Übersicht.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zitat:
Dann schau dir mal die PS2 oder XBox Joypads an
-_- Und was haben PS2 und Xbox-Pads mit dem PC zu tun?Ausserdem haben die auch keine analogen Buttons.Sowas gibts nicht, denn ein Button kann nur die Zustände "0" und "1" annehmen.Das was du meinst sind vielleicht die analogen Steuerelemente...das hat aber nix mit Buttons zu tun.
Zitat:
mh... gibt es da irgendwo ne Doku/Tutorial zu???
Wie so oft hilft hier <a href='http://www.google.de' target='_blank'>google</a>.Da hab ich auf Anhieb folgendes gefunden : <a href='http://home.arcor.de/tierezuhause/delphi4all/directx/dinput/index.htm' target='_blank'>http://home.arcor.de/tierezuhause/delphi4a...input/index.htm</a>
-_- Und was haben PS2 und Xbox-Pads mit dem PC zu tun?Ausserdem haben die auch keine analogen Buttons.Sowas gibts nicht, denn ein Button kann nur die Zustände "0" und "1" annehmen.Das was du meinst sind vielleicht die analogen Steuerelemente...das hat aber nix mit Buttons zu tun.
Man kann die PS2/XBox Pads einfach an den PC anschließen, per Adapter... so wie ich z.Z. mache (btw gibt es das PS2 Pad auch für den PC)
Analoge Buttons gibt es natürlich! Schonmal PS2 oder XBox gespielt??? z.B. bei DeadOrAlive.. desto Fester du den Knopf drückst, desto fester schlägst du..
oder bei DoA:XBV... Desto stärker du den Button drückst, desto näher zoomst du heran
MGS2: Lässt du den Button schnell los, schießt du.. lässt du ihn langsam los, ziehst du die waffe weg ohne schuss..
Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.