[Python] pygame plantage

darkneurone Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   -  
 josmiley -
bonjour à tous :)

voilà mon problème, je suis en train de coder un pong. J'ai commencer par afficher un menu puis je veux que lorsque l'utilisateur appuiera sur la touche "barre d'espace", le jeu commence. Or mon problème se situe au niveau de la transition entre le jeu et la fin du menu.

Je ne peux pas savoir d'où viens l'erreur puisqu'il n y'en a aucune de trouver :S ce qui se passe, c'est juste que je dois fermer le programme avec ctrl+alt+suppr parce qu'il ne veut pas se fermer quand j'appuie sur la touche que j'ai défini :S

voilà un extrait de mon code :

def input(events):
    global px,start
    pygame.event.set_blocked(MOUSEMOTION)
    for event in events:
        if debut == False:
           if event.type == KEYDOWN:
                if event.key == K_LEFT:
                    px -= pspeed
                if event.key == K_RIGHT:
                    px += pspeed
                if event.key == K_SPACE:
                    start = True
        elif debut == True:
            if event.type == KEYDOWN:
                if event.key == K_SPACE:
                    debut == False
        elif event.type == QUIT:
            sys.exit(0)

while debut == True:
    input(pygame.event.get())
    tempsA = time.get_ticks()
    flag = True
    if tempsA - tempsP > 100:
        if i < 255 and flag == True:
            while i < 255:
                 i = i + 1
                 staff = sfont.render("Created by XXX",True,(i,i,i))
                 tempsA = tempsP
                 flag = False
                 screen.fill(black)
                 screen.blit(titre,(250,220))
                 screen.blit(staff,(400,400))
                 display.update()
                 print debut
        if i > 0 and flag == False:
             while i > 0:
                 i = i - 1
                 staff = sfont.render("Created by XXX",True,(i,i,i))
                 tempsA = tempsP
                 flag = True
                 screen.fill(black)
                 screen.blit(titre,(250,220))
                 screen.blit(staff,(400,400))
                 display.update()

while True:
    print "a"
    input(pygame.event.get())
    colraq(px,px2)

    bx = px+40
    by = py+20
    
    screen.fill(black)
    screen.blit(raq1,(px,py))
    screen.blit(raq2,(px2,py2))
    screen.blit(balle,(bx,by))

    display.update()

    while start == True:
        input(pygame.event.get())

        bx += vbx
        by += vby

        IA(bx)
        colraq(px,px2)
        collision(bx,by,px,py,px2,py2)

        screen.fill(black)
        screen.blit(raq1,(px,py))
        screen.blit(raq2,(px2,py2))
        screen.blit(balle,(bx,by))

        display.update()


je suis débutant, donc je sais que mon code doit comporter des énormitées ^^ n'hésitez pas à m'en faire part et à me conseiller sur une possible optimisation !

merci pour votre aide :)
bonne journée !

3 réponses

darkneurone Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   12
 
personne ne sait comment résoudre ce problème ? :S
0
darkneurone Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   12
 
up :S
0
josmiley
 
avec que des bouts de code ça va pas etre facile de t'aider ....
0