Alors, je n'utilise plus GM, et je n'ai pas de pad pour tester. Et je n'ai jamais essayer.
MAIS :
quand je regarde la doc concernant la direction, j'imagine qu'il y a deux solutions.
Pour la croix directionnelle:
Chaque direction (haut-bas-gauche-droite) doit certainement correspondre à un numéro de bouton. Donc, en gros, tu gères chaque direction comme un bouton. Tu sais déjà faire cela.
Pour les sticks :
- Spoiler:
joystick_xpos(id) Returns the position (-1 to 1) of the x-axis of joystick id.
joystick_ypos(id) Returns the joysticks y-position.
joystick_zpos(id) Returns the joysticks z-position (if it has a z-axis).
joystick_rpos(id) Returns the joysticks rudder position (or fourth axis).
joystick_upos(id) Returns the joysticks u-position (or fifth axis).
joystick_vpos(id) Returns the joysticks v-position (or sixth axis).
Je pense que seul xpos et ypos t'intéressent. Ils correspondent respectivement à la position horizontal et vertical du joystick.
Pour le reste, j'imagine que zpos doit correspondre à l'appui sur le stick. Et les autres valeurs au second stick si il est présent.
Les valeurs varient de -1 à 1 car un joystick est normalement analogique.
Donc, par exemple, si:
- Code:
-
joystick_xpos(id) = -0.1432
Cela signifie que le joystick est orienté vers la gauche.
Donc, pour savoir si un joystick est dirigé vers une direction, sans se préoccuper du degré d'inclinaison, tu vérifies juste que les valeurs retournée soit != 0.
Un exemple qu'il faut corriger, car je ne me souviens plus trop de la syntaxe GML. Mais l'idée est là.
Dans ce code, j'ai mis des vérifications à une valeur un poil plus élevé que != 0. Car un joystick étant parfois trop sensible, on établit une "zone morte" autour du joystick.
- Code:
-
if joystick_xpos(myStick) < 0.1:
sprite_x -= 1;
elif joystick_xpos(myStick) > 0.1:
sprite_x += 1;
if joystick_ypos(myStick) < 0.1:
sprite_y -= 1;
elif joystick_ypos(myStick) > 0.1:
sprite_y += 1;
Bien sur, c'est à confirmer ou à infirmer par un autre membre. C'est juste une déduction logique que j'ai selon la bible, et je n'ai pas testé.