Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
820 connectés 

  FORUM HardWare.fr
  Programmation
  C

  SDL_GetKeyState version manette

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SDL_GetKeyState version manette

n°1797158
jaco3th
Posté le 08-10-2008 à 13:14:22  profilanswer
 

Bonjour,
Je voudrais juste savoir s'il existe un équivalant de SDL_GetKeyState pour gerer les boutons d'une manette svp.

mood
Publicité
Posté le 08-10-2008 à 13:14:22  profilanswer
 

n°1797178
jaco3th
Posté le 08-10-2008 à 13:35:48  profilanswer
 

resolu

n°1797184
dwogsi
Défaillance cérébrale...
Posté le 08-10-2008 à 13:40:29  profilanswer
 

Et comment? Parce que là, autant supprimer le topic...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1799569
jaco3th
Posté le 13-10-2008 à 17:15:04  profilanswer
 

j'ai trouvé ça dans la doc:
 
Sint16 SDL_JoystickGetAxis(SDL_Joystick *joystick, int axis);
 
 :jap:
ps: ça c'est pour gerer les axes, et il y en a un autre pour les boutons  :):
 
Uint8 SDL_JoystickGetButton(SDL_Joystick *joystick, int button);


Message édité par jaco3th le 13-10-2008 à 21:41:31
n°1800095
jaco3th
Posté le 14-10-2008 à 17:07:49  profilanswer
 

parcontre je n'arrive pas à m'en servir je veux bien de l'aide.

n°1800355
matafan
Posté le 15-10-2008 à 11:32:57  profilanswer
 

Il faut qu'on devine ton problème ?

n°1801123
jaco3th
Posté le 16-10-2008 à 20:06:42  profilanswer
 

Non.
Alors j'explique:
J'ai codé un jeu qui fonctionne au joystick et le probleme est que:
En fait j'utilise un booléen qui si j'appuie sur la touche 1 du joystick se met à bouton = 1, si je relache ce bouton bouton = 0;
J'utilise aussi un booléen pour chaque direction, qui se mettent à droite = 1 (par exemple) si je vais à droite et droite = 0 si je relache cette direction.
Tout cela fonctionne tres bien.
Le seul probleme est que si je relache un axe et le bouton au meme moment, seul bouton se met à = 0, mon booléen "droite" reste à 1 (donc le personnage continue à avancer meme si je n'appuie pas vers la droite tant que je ne rappuie pas sur une direction il reste à marcher tout seul.
J'espere etre clair quand meme.
J'ai essayé SDL_JoystickGetAxis et SDL_JoystickGetButton mais ça n'y change strictement rien.


Message édité par jaco3th le 16-10-2008 à 20:07:56
n°1801595
jaco3th
Posté le 17-10-2008 à 17:58:03  profilanswer
 

donc voila en fait quand il sagit de critiquer un topic ya toujours du monde quoi, mais à part ça...

n°1801604
matafan
Posté le 17-10-2008 à 18:40:50  profilanswer
 

Je disais ça c'était pour toi hein, si tu veux augmenter tes chances d'avoir une réponse la première chose c'est de donner le plus d'info possible à ceux qui te lisent... Avec ton attitude c'est sûr que ça donne pas envie de t'aider.

n°1801606
jaco3th
Posté le 17-10-2008 à 18:50:14  profilanswer
 

Ben ya de quoi etre blazé, je passe mes journées à essayer de resoudre le probleme et aucune solution sur aucun site, à croire qu'on ne peut pas coder un jeu correct (qui se joue à la manette) en C.


Message édité par jaco3th le 17-10-2008 à 18:53:12
mood
Publicité
Posté le 17-10-2008 à 18:50:14  profilanswer
 

n°1801612
matafan
Posté le 17-10-2008 à 19:08:16  profilanswer
 

Met le bout de code qui appelle SDL_JoystickGetAxis et SDL_JoystickGetButton peut être... Le problème est sûrement dans ton code.

n°1801631
jaco3th
Posté le 17-10-2008 à 19:58:24  profilanswer
 

J'ai tout essayé, meme de resoudre le probleme par programmation,mais apparemment c'est la SDL qui ne gere pas les actions continues au joystick, seulement au clavier.
Je peux mettre le bout des evenements de mon code actuel (desolé pour les balmises , je ne sais pas les mettre):
 
 
while(SDL_PollEvent(&event));
        {
        switch(event.type)
        {
 
            case SDL_JOYBUTTONDOWN:
            if (manette && event.jbutton.button == 1)
            boutonUn = 1;
            break;
 
        case SDL_JOYBUTTONUP:
        if (manette && event.jbutton.button == 1)
        boutonUn = 0;
        break;
 
 
 
        case SDL_JOYAXISMOTION:
 
        if (event.jaxis.axis == 0 && event.jaxis.value >= -3200)
        gauche = 0;
 
        if (event.jaxis.axis == 0 && event.jaxis.value <= 3200)
        droite = 0;
 
        if (event.jaxis.axis == 1 && event.jaxis.value >= -3200)
        haut = 0;
 
        if (event.jaxis.axis == 1 && event.jaxis.value <= 3200)
        bas = 0;
 
 
    if (event.jaxis.axis == 0 && event.jaxis.value < -3200) /* Vers la gauche */
        gauche = 1;
 
    else if (event.jaxis.axis == 0 && event.jaxis.value > 3200) /* Vers la droite */
        droite = 1;
 
    else if (event.jaxis.axis == 1 && event.jaxis.value < -3200) /* Vers le haut */
        haut = 1;
 
    else if (event.jaxis.axis == 1 && event.jaxis.value > 3200) /* Vers le bas */
        bas = 1;
 
 
    break;
 
//etc...
 
Le truc banal quoi...

n°1801655
matafan
Posté le 17-10-2008 à 20:59:06  profilanswer
 

Tu es sûr que le problème n'est pas dans le code qui examine les boutonUn, gauche, droite, haut et gauche, et fait l'action correspondante ?

n°1801663
jaco3th
Posté le 17-10-2008 à 21:30:47  profilanswer
 

Certain car mon jeu fonctionne impécablement au clavier (il y a un menu, on peut choisir soit "clavier" soit "manette" ).
Je vais essayer de placer des SDL_JoystickGetAxis et des SDL_JoystickGetButton  directement en tant que condition (en plein dans le code) , je n'y avais pas pensé, j'étais trop parti dans l'idée des booléens.
Je reposterais pour dire ce que ça donne...
Merci matafan.

n°1801825
jaco3th
Posté le 18-10-2008 à 16:59:54  profilanswer
 

Toujours rien.


Message édité par jaco3th le 19-10-2008 à 23:13:00
n°1802940
jaco3th
Posté le 21-10-2008 à 19:44:03  profilanswer
 

Probleme enfin résolu sur un autre site !
Ca venait du point virgule apres while(SDL_PollEvent(&event)) qui rendait le while non fonctionnel.
Une grosse prise de tete pour rien en résumé, mais content d'en etre sorti.
(desolé je n'ai pas trouver comment mettre mon probleme en "resolu" )


Message édité par jaco3th le 21-10-2008 à 19:46:48
n°1802942
matafan
Posté le 21-10-2008 à 19:58:57  profilanswer
 

:pt1cable:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  SDL_GetKeyState version manette

 

Sujets relatifs
Remplacer une DLL (.net) au runtime par une nouvelle versionObtenir la version du navigateur client avec une jsp/servlet
[PDA/PPC] transcrire sur Windows Mobile la version PC d'un dico aéroCherche version évaluation Dreamweaver CS3 Mac FR
Comment connaitre la version de mon SDK[SDL] problèmes chargement d'images
Créer un cadre de saisie avec SDL ou autre ?[VC] Ressource version
Version simplifiée du jeu de MastermindRécupérer version HTML
Plus de sujets relatifs à : SDL_GetKeyState version manette


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)