• [^] # Re: bonne idée!

    Posté par . En réponse au journal Un petit script pour les utilisateurs de manette. Évalué à 1.

    Pour l'utilisation de la base de données de DevNewton.

    J'ai copier cette partie vers un fichier joy_bind_cfg.py:

    #Bouton pour limiter la vitesse du pointeur
    LIMITER=7
    # Association des bouton de la manette a une action
    #
    # binds= {bouton:(materiel, code), ...}
    # bouton: numero du bouton de la manette
    # materiel: 0=souris, 1=clavier
    # code: keycode de la touche pour un clavier,
    # numero du bouton pour une souris
    binds={0:(0, 1), # souris bouton de gauche
     1:(0, 3), # souris bouton de droite
     2:(1, 36), # clavier Echap
     3:(1,9), # clavier Entrer
     4:(1, 117), # clavier pg suivante
     5:(1,112), # clavier pg precedente
     6:(1,37), # clavier ctrl
     #~ 7:(1,50), # clavier Shift
     #~ 9:(1,64), # clavier Alt
     }
    

    et je l'ai remplacé par:

    #import la config des boutons
    from joy_bind_cfg import *
    

    ensuite j'ai créé le script autoconf_joy.py qui permet de créer le nouveau fichier joy_bind_cfg.py en fonction de la manette.

    import urllib
    import pygame,os
    pygame.init()
    mon_joystick = pygame.joystick.Joystick(0)
    mon_joystick.init()
    jname= mon_joystick.get_name()
    joydb=eval(urllib.urlopen('http://dl.bci.im/gamepad_db/gamepad_db.json').read())
    joydsc=[ i for i in joydb if i["name"]==jname]
    if len(joydsc)>0:
     try:
     mapping={}
     for k,v in joydsc[0]["mappings"].iteritems():
     if 'button' in v.keys():
     mapping[k]=v['button']
     cfg="""
    #Bouton pour limiter la vitesse du pointeur
    LIMITER=%(righttrigger)d
    # Association des bouton de la manette a une action
    #
    # binds= {bouton:(materiel, code), ...}
    # bouton: numero du bouton de la manette
    # materiel: 0=souris, 1=clavier
    # code: keycode de la touche pour un clavier,
    # numero du bouton pour une souris
    binds={%(a)d :(0, 1), # souris bouton de gauche
     %(x)d :(0, 3), # souris bouton de droite
     %(y)d:(1, 36), # clavier Echap
     %(b)d:(1,9), # clavier Entrer
     %(leftshoulder)d:(1, 117), # clavier pg suivante
     %(lefttrigger)d:(1,112), # clavier pg precedente
     %(rightshoulder)d:(1,37), # clavier ctrl
     }
     """ %mapping
     open("joy_bind_cfg.py","w").write( cfg)
     except:
     print "configuration auto impossible"
     else:
     print "Configuration auto OK"
    else:
     print "Votre manette n'est pas dans la base, vous pouvez soumettre votre configuration ici:\
     http://devnewton.bci.im/fr/gamepad_db"
    #force la fermeture de pygame
    pid= os.getpid()
    os.kill(pid,6)
    

    Et voilà le travail... C'est bien crade mais ça marche!