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

  FORUM HardWare.fr
  Programmation
  Python

  Problème de Joystick avec Pygame

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de Joystick avec Pygame

n°2225711
uridarkner
Posté le 22-04-2014 à 12:45:53  profilanswer
 

Bonjour, je suis actuellement entrain de créer un mini jeux ( labyrinthe ) avec pygame. Je me suis fortement inspiré d'un jeu déjà existant niveau codage, mon but est d'utiliser un joystick pour effectuer les mouvements du personnage.
Hélas, le programme ne prend pas en compte le joystick. Le joystick fonctionne parfaitement sur un autre petit programme simple donc ce n'est pas un problème de joystick.
Je vous transmet le code, dites moi si vous voyez des erreurs et si vous avez une idée de la source du problème.
 
-------------------------------------------------
 
import pygame
from pygame.locals import *
 
from classes import *
from constantes import *
 
pygame.init()
pygame.joystick.init()
 
#Ouverture de la fenêtre Pygame (carré : largeur = hauteur)
fenetre = pygame.display.set_mode((cote_fenetre, cote_fenetre))
#Icone
icone = pygame.image.load(image_icone)
pygame.display.set_icon(icone)
#Titre
pygame.display.set_caption(titre_fenetre)
nb_joysticks = pygame.joystick.get_count()
#Et on en crée un s'il y a en au moins un
if nb_joysticks > 0:
        mon_joystick = pygame.joystick.Joystick(0)
        mon_joystick.init()
 
#BOUCLE PRINCIPALE
continuer = 1
while continuer:
         
        #Chargement et affichage de l'écran d'accueil
        accueil = pygame.image.load(image_accueil).convert()
        fenetre.blit(accueil, (0,0))
 
        #Rafraichissement
        pygame.display.flip()
 
        #On remet ces variables à 1 à chaque tour de boucle
        continuer_jeu = 1
        continuer_accueil = 1
 
        #BOUCLE D'ACCUEIL
        while continuer_accueil:
         
                #Limitation de vitesse de la boucle
                pygame.time.Clock().tick(30)
         
                for event in pygame.event.get():
                 
                        #Si l'utilisateur quitte, on met les variables  
                        #de boucle à 0 pour n'en parcourir aucune et fermer
                        if event.type == JOYBUTTONDOWN :
                                continuer_accueil = 0
                                continuer_jeu = 0
                                continuer = 0
                                #Variable de choix du niveau
                                choix = 0
                                 
                        elif event.type == KEYDOWN:                                
                                #Lancement du niveau 1
                                if event.key == K_F1:
                                        continuer_accueil = 0   #On quitte l'accueil
                                        choix = 'n1'            #On définit le niveau à charger
                                #Lancement du niveau 2
                                elif event.key == K_F2:
                                        continuer_accueil = 0
                                        choix = 'n2'
                         
                 
 
        #on vérifie que le joueur a bien fait un choix de niveau
        #pour ne pas charger s'il quitte
        if choix != 0:
                #Chargement du fond
                fond = pygame.image.load(image_fond).convert()
 
                #Génération d'un niveau à partir d'un fichier
                niveau = Niveau(choix)
                niveau.generer()
                niveau.afficher(fenetre)
 
                #Création de Donkey Kong
                dk = Perso("images/dk_droite.png", "images/dk_gauche.png",  
                "images/dk_haut.png", "images/dk_bas.png", niveau)
 
                                 
        #BOUCLE DE JEU
        while continuer_jeu:
         
                #Limitation de vitesse de la boucle
                pygame.time.Clock().tick(30)
         
                for event in pygame.event.get():
                 
                        #Si l'utilisateur quitte, on met la variable qui continue le jeu
                        #ET la variable générale à 0 pour fermer la fenêtre
                        if event.type == JOYBUTTONDOWN and event.button == 0:
                                continuer_jeu = 0
                                continuer = 0
                 
                        elif event.type == JOYAXISMOTION or event.type == JOYBUTTONDOWN:
                                #Si l'utilisateur presse Echap ici, on revient seulement au menu
                                if event.button == 4:
                                        continuer_jeu = 0
                                         
                                #Touches de déplacement de Donkey Kong
                                elif event.axis == 0 and event.value >2:
                                        dk.deplacer('droite')
                                elif event.axis == 0 and event.value <-2:
                                        dk.deplacer('gauche')
                                elif event.axis == 1 and event.value >2:
                                        dk.deplacer('haut')
                                elif event.axis == 1 and event.value <-2:
                                        dk.deplacer('bas')                      
                         
                #Affichages aux nouvelles positions
                fenetre.blit(fond, (0,0))
                niveau.afficher(fenetre)
                fenetre.blit(dk.direction, (dk.x, dk.y)) #dk.direction = l'image dans la bonne direction
                pygame.display.flip()
 
                #Victoire -> Retour à l'accueil
                if niveau.structure[dk.case_y][dk.case_x] == 'a':
                        continuer_jeu = 0

 
--------------------------------------------------
Le programme appelle un autre programme "classes" dans le quel est defini la classes "deplacer". Le programme sans l'insertion du joystick marche.
Merci d'avance

mood
Publicité
Posté le 22-04-2014 à 12:45:53  profilanswer
 

n°2227494
uridarkner
Posté le 07-05-2014 à 16:36:13  profilanswer
 

UP ? :??:

n°2227671
vckbm
tu destroye tout le monde
Posté le 09-05-2014 à 23:13:49  profilanswer
 

je risque de pas pouvoir aider mais le sujet m'intéresse, j'upperai de tmps en tmps  
 
bon courage


---------------
A Vendre
n°2228040
uridarkner
Posté le 14-05-2014 à 16:17:39  profilanswer
 

J'ai vraiment besoin de votre je dois bientot finir le projet... :sweat:  
UP !

n°2228054
uridarkner
Posté le 14-05-2014 à 17:39:47  profilanswer
 

Probléme resolu.

n°2228063
suizokukan
Posté le 14-05-2014 à 20:49:20  profilanswer
 

Ah, et pourrait-on savoir comment ?


---------------
rule #1 : trust the python
n°2228830
uridarkner
Posté le 22-05-2014 à 19:47:40  profilanswer
 

Il manquait en fait une boucle de reconnaissance de commande de joystick juste avant les déplacement par le joystick. :)


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

  Problème de Joystick avec Pygame

 

Sujets relatifs
Probleme de compilation sur JavascoolProbleme UPDATE dans PHP
Problème argument fonction slope (vba)Probleme sur la fonction get pour un Httprequest
Problème de compréhension de la boucle FORprobleme sur replace dans une macro
Problème latin-1 utf-8 sur restauration de BDDProbleme de compatibilité entre sharepoint 2012 et IE11 ?
Problème de gallerie[Problème Maro Vba ] Exporter une colonne en fichier Texte.
Plus de sujets relatifs à : Problème de Joystick avec Pygame


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR