Erweiterte Joystickbefehle

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag von orange-blue »

ja, aber was soll das den werden:
Caps\dwAxes & #DIDC_FORCEFEEDBACK
edit:
BEHINDERTE M$! :evil: Können nicht mal ein Tutorial für ihre eigene Programmiersprache machen!! :evil: Wollte ein Tutorial auf msdn schaun, war voller bugs(gleich am anfang mal ein endif auslassen!) :evil:
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

orange-blue hat geschrieben:ja, aber was soll das den werden:
Caps\dwAxes & #DIDC_FORCEFEEDBACK
Das ist eine Standardabfrage um zu schauen ob ein Bit [Flag] gesetzt ist.

Beispiel:

Code: Alles auswählen

 0100101
&0100000
------------
 0100000  <> 0 -> True

 1000111
&0100000
------------
 0000000  = 0 -> False
Schau auch mal in der Hilfe unter Operatoren nach!
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Stefan
Beiträge: 125
Registriert: 29.08.2004 10:51
Kontaktdaten:

Beitrag von Stefan »

Hallo
@orange-blue
Hey, gut aufgepasst ! :allright:
Natürlich muss es so heißen:

Code: Alles auswählen

...
If Caps\dwFlags & #DIDC_FORCEFEEDBACK 
...
Hab den Code korrigiert. :oops:

Gruß
Stefan
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Bei mir funktioniert der code nicht, ich hab aber Force Feedback.

Mfg,
AndyX
Stefan
Beiträge: 125
Registriert: 29.08.2004 10:51
Kontaktdaten:

Beitrag von Stefan »

Komisch ... :roll:
Kannst du mal diesen Code testen ?

Code: Alles auswählen

  
#DIEDFL_FORCEFEEDBACK=256

Structure DIDEVICEINSTANCE
dwSize.l
guidInstance.guid
guidProduct.guid 
dwDevType.l
tszInstanceName.b[#MAX_PATH]
tszProductName.b[#MAX_PATH]
guidFFDriver.guid
wUsagePage.w 
wUsage.w
EndStructure

Procedure GetDInput()
!extrn _PB_DirectInput
InitJoystick()
!MOV Eax,[_PB_DirectInput]
ProcedureReturn
EndProcedure

Procedure CB(*INFO.DIDEVICEINSTANCE,dummy)
Debug PeekS(@*INFO\tszProductName[0])
ProcedureReturn 1
EndProcedure

*DI.IDirectInput7A=GetDInput()

Debug "Diese Geräte unterstützen Force-Feedback:"
*DI\EnumDevices(0,@CB(),0,#DIEDFL_FORCEFEEDBACK)
Wird dein Joystick hier angezeigt ?

Gruß
Stefan
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Funktioniert jetzt. Liegt wahrscheinlich daran, dass ich wahrscheinlich gestern meine Treiber neu installiert hab. :D

EDIT: Kannst du in deinen Code noch ForceFeedback machen?? :praise: Bitte wenn du kannst. :D :mrgreen: Wäre dir sehr dankbar. :D

Mfg,
AndyX
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Endlich ForceFeedBack für alle ...

Beitrag von Xaby »

11. März 2005 - 24. April 2007 (mehr als zwei Jahre alt ...)

JoyPads mit ForceFeedback (12,95 Euro)

http://www.pearl.de/product.jsp?pdid=PE ... 6&curr=DEM

Kleiner Blick in die Hilfe von PB 4.xx

>>
PureBasic bietet vollen Zugriff auf am Computer angeschlossene Joysticks. Es unterstützt Standard-Joysticks mit bis zu 8 Knöpfen. Sie benutzt die DirectX Technologie.

ExamineJoystick
InitJoystick
JoystickAxisX
JoystickAxisY
JoystickButton
<<

Das GamePad von Pearl und andere heute übliche haben sogar bis zu 12 Knöpfe. 10 Haben aber so gut wie alle bis auf die MIDI-GamePads.

Hab mir mal welche von Plus (Verbrauchermarkt) gekauft.
Für Kinderhände, weil ich so einen kurzen Daumen habe.
4 normale Knöpfe, 4 Schultertasten, ein Steuerkreuz (D-Pad)
und Start + Select.

Dazu ein und ausschaltbare Rumble-Funktion.


Ihr kennt mich doch, ich geb einen Begriff in die Suche ein und dann fang ich an zu heulen. Das ist hier so gut wie das einzige Thema zu ForceFeedback. Hat sich da schon was getan in den zwei Jahren?

Achso und selbst BasicA (von ganz früher) hat zwar nur 2 Knöpfe pro JoyPad unterstützt, aber dafür 2 Stück.

Ich dachte, die JoyStick-Befehle müssten eher so aussehen wie die vom Desktop.

>> Ergebnis=ExamineJoySticks()
Ergebnis ist die Anzahl der angeschlossenen Devices.

Dann kann man jeden Device abfragen, welche Eigenschaften er besitzt.
Wie Anzahl der Achsen, Coli-Had, Pedale, Buttons ... ForceFeedback ...

Code: Alles auswählen

If JoyStickDevice(0)=#PB_JoyStick_ForceFeedBack
   JoyStickForce(1,100)  
EndIf
JoyStickForce (Motor, Stärke)

...

Also das wäre schon ein Anfang. Für Autorennspiele oder Beat'm'Up ...

... Als Parameter aller Befehle sollte man wenigstens den Device angeben können.


Sicherlich gibt es schon eine UserLib, nur ich weiß wieder nicht, dass es sie gibt oder?

Dank euch. Euer Folker :allright:
Kinder an die Macht http://scratch.mit.edu/
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hm...?

ein pad ist doch kein joystick...? *grübel*
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Watt, wer bist du denn?

Pad und JoyStick ist doch alles das gleiche.

So wie Maus und einige Stifte. Das Aussehen ist egal, was man mit machen kann ist entscheidend.

JoySticks gab es wohl zuerst, wegen der Flugzeuge und der einfacheren Elektronik.

Aber heute ist es eh alles ein USB-Device :mrgreen:
Kinder an die Macht http://scratch.mit.edu/
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Watt, wer bist du denn?
die meisten kennen mich als Kaeru, aber du darfst mich "Hoheit" nennen.
Xaby hat geschrieben:Pad und JoyStick ist doch alles das gleiche.
So wie Maus und einige Stifte.
das is doch Homburg.
mag sein, dass sich die interfaces mittlerweile gewandelt haben und dass sie vereinheitlicht wurden,
aber grundsätzlich besteht ein wesentlicher technischer unterschied zwischen einer Maus und einem Joystick:
ein joystick hat eine ruhestellung und bewegungsgrenzen!

auch wenn der alte port-unterschied nicht mehr besteht, und "alles USB ist".
mäuse gibts immer noch für ps2, joysticks nie.

mag sein, dass ein Pad einem Joystick grundsätzlich recht ähnlich ist,
aber noch bei der A6 engine des 3DGS gab es getrennte befehle für Pad und für Joystick.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten