userlib Joypad (pour gérer plusieurs joysticks)

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

userlib Joypad (pour gérer plusieurs joysticks)

Message par Dr. Dri »

J'ai pas mal galéré pour trouver de la doc mais j'ai finalement réussi à m'en sortir avec DirectX 7 pour faire une lib qui gère plusieurs joysticks à la fois.

Pourquoi j'ai fait ca alors que Flype nous a déjà pondu une super lib qui fait la même chose ? Parce qu'elle ne reconnait pas tous mes joystick... en fait mes manettes de PS2 (avec adaptateur USB) sont reconnues mais considérées comme débranchées. DirectX n'a pas de problème de ce côté là...

La grande différence avec la lib de Flype c'est que la mienne ressemble davantage à la lib Joystick de PB... Avec des fonctions en plus (le minimum vital) mais beaucoup moins de possibilités que celles offertes par JoystickEx. Sinon, InitJoystick() échoue si aucun Joystick n'est branché, ce n'est pas le cas d'InitJoypad()

Désormais la lib est disponible en téléchargement ^^
Signalez les bugs si vous en avez svp.

Image
Joypad.zip

Image

Dri
Dernière modification par Dr. Dri le jeu. 17/août/2006 2:54, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'ai un trusmaster 360 modena
les 12 boutons possibles sont bien pris en charge
les 2 mini joystyick aussi
(c'est une manette PC qui ressemble a celle des playstations)

par contre j'ai jamais pu faire bouger le curseur rouge avec la lettre "Z"
dessous (celui de gauche)
cela ne corresponds a rien sur ma manette :D

sinon chapeau bas !! (tu gere le retour de force ? )
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Dobro a écrit :tu gere le retour de force ?
non, pour la simple raison qe je n'y ai pas pensé... je vais me documenter là dessus

Dri
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

Testé avec un joystick Sidewinder :

http://www.comparestoreprices.co.uk/ima ... winder.jpg

Tout fonctionne nickel à par la molette :)
Par contre j'ai pas trop compris à quoi sert le champ Z/RZ & POV niveau joystick.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Dans une manette de PS2, les Axes Z et la Rotation sur Z correspondent respectivement à l'axe horizontal et vertical du joystick de droite (pour le joystick de gauche ce sont les axes X et Y)

Pour la molette il s'agit surement du "slider", je vais donc ajouter le support du slider... de toute manière ce n'étais qu'un programme de test qui semble bien fonctionner ^^

Dri
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Oui çà fonctionne bien.
Je confirme pour ma manette Saitek qui ressemble à une manette PS1.

Par contre 'Z' ne réagit pas alors qu'avec le panneau de config ou JoystickEx çà fonctionne.

C'est super que tu ai fais çà Dri - via DirectX -
car je rappelle que JoystickEx utilise la winmm.lib de windows.
Or la winmm.lib ne sait pas gérer le retour de force.
Donc à mon avis ta lib devra savoir le faire à terme.

Par contre, tu dis que InitJoystick() ( cf. JoystickEx ) échoue si aucun joystick n'est branché. Si je comprends bien tu veux dire que si on démarre le jeu sans manette et qu'on la branche pendant que le jeu ai démarré alors elle sera pas reconnue en cours de route ?
Il doit bien y avoir un moyen de corriger çà... Je verrais un de ces 4...
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

j'espère simplement que tu fournira le source...
une telle lib doit pouvoir être maintenue dans la durée.
Image
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Flype a écrit :Par contre 'Z' ne réagit pas alors qu'avec le panneau de config ou JoystickEx çà fonctionne.
dans la doc de DirectX 8 ils disent que DirectX 7 peut reconnaître le Z en tant que "slider" selon les pilotes.
Flype a écrit :Par contre, tu dis que InitJoystick() ( cf. JoystickEx ) échoue si aucun joystick n'est branché. Si je comprends bien tu veux dire que si on démarre le jeu sans manette et qu'on la branche pendant que le jeu ai démarré alors elle sera pas reconnue en cours de route ?
Il doit bien y avoir un moyen de corriger çà... Je verrais un de ces 4...
Justement, je n'ai pas ce problème avec ma lib, dans la mesure où il est possible de lister à tout moment les joysticks branchés.
Flype a écrit :j'espère simplement que tu fournira le source...
une telle lib doit pouvoir être maintenue dans la durée.
Bien entendu, je l'ai mis en forme d'ailleurs et je l'ai compilée avec Tailbite (y'avait des trucs à modifier)
J'ai ajouté la gestion des "sliders" et de tous les "points de vue" (POV)
Y'a le "Joypad Viewer" qui fera office d'exemple
Y manque plus que le chm, je ferais ca ce soir en rentrant et ce sera dispo à télécharger...

Sinon pour le retour de force ca devrait pas poser de probleme (excepté le fait que les effets soient TRES variés)
J'attends qu'un ami rentre de vacances pour lui emprunter son volant et pouvoir faire mes tests moi-même. (je testerais aussi avec le vibreur de mes manettes de PS2)

Dri ;)
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Moi j'ai une manete xbox 360 sans fil, j'ai le fil usb de recharge, j'ai tester en le branchant sur l'usb de mon pc, mais il n'y a pas de driver sur le web pour la manete sans fil via le cordon de recharge, donc je sais pas la faire aller :(

Il n'y a pas moyen de l'utiliser sans les driver windows ?
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Sans pilote ton ordi ne peut pas "piloter" ton périphérique donc c'est normal que ca ne fonctionne pas...

Sinon j'ai enfin compilé la lib (y'avait encore des modifs à faire pour les params optionnels...) mais le fichier d'aide est buggé. Je regarderais plus tard ce qui ne va pas...

Je remercie ceux qui ont testé (z'ont pas tous posté ici =) et je demanderais à Flype de vérifier si avec sa manette l'axe Z est bien remplacé par un des deux sliders... Et pour garzul, m^me question, est-ce que ta molette est un des deux sliders ?

Prochaine étape, le retour de force ^^

[edit]
la lib n'était pas la bonne dans le zip, c'est corrigé (les params optionels ne marchaient pas, au moins pour JoypadPOV)

Dri :D
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

alors, après test de la dernière lib :

déjà moi j'ai cette manette (enfin presque) :

Image

sur celle ci :

Les boutons : tous OK
POV, c'est la croix (le pad)
Slider0, c'est la croix aussi.
Slider1, stick de gauche ? pas reconnu.
Slider2, stick de droite ? pas reconnu.

- JoypadPOV(j) retourne :

-1
000
045
090
135
180
225
270
315

- JoypadSlider(j, 0) retourne :

-1
00000
04500
09000
13500
18000
22500
27000
31500

- JoypadSlider(j, 1) :

toujours -1.
Image
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

merci pour tes infos, je pensais pas que les sliders aussi retournaient des valeurs en degrés * 100, je corrigerais la fonction et la doc

ton axe z manquant correspond donc bien à un slider ?
sinon tu as testés les rotations sur X Y Z ?

de mon côté j'ai arrangé le fonctionnement interne de la lib (ca change rien du tout à l'utilisation). au lieu de lister les joypads avec une liste chainée, je les liste avec un tableau (plus de problème d'élément courant, risqué avec les threads... et aussi plus rapide d'accès ^^)

j'ai regardé pour le retour de force et franchement ca ne va pas être simple à gérer... enfin bon je ne désespère pas pour si peu

Dri
Anonyme

Message par Anonyme »

Mon post est inutile, mais je tiens à t'encourager, car j'aimerais beaucoup avoir accès au retour de force :wink:
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

:D J'ai commander un joystick Saitek Cyborg evo, dés que je le reçois je test ton programme :D

Image

Qu'il est beau #courrir
Anonyme

Message par Anonyme »

Est ce toujours d'actualitée ?

pour ma part , j'utilise ce joystick pour les jeux aériens :


Image

Avec ta lib , le slider ne fonctionne pas ( bouton gris a gauche, à la base du joystick) , as tu regarder le force feedback ? j'ai essayé, mais je ne bite pas grand chose à ton code ^^
je demande cela , car, je fait mumuse avec le moteur de Tmyke, & ta lib, ca serais cool quelle se standardise non ?

@++
Répondre