Problèmes pour faire un casse brique en python

elrking096 Messages postés 1118 Date d'inscription   Statut Membre Dernière intervention   -  
utilisateursansimagination Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

Je dois faire un casse briques en python avec Pygame mais python c'est une merde. Mon code est juste, d'ailleurs il n'y a aucune erreur, mes valeurs sont logiques, mais ça fait pas ce que je demande. Quelqu'un peut m'aider ?

1) Pendant cette boucle de déplacement de la balle, je veux pouvoir bouger ma barre situé en bas à gauche ou à droite, mais je peux pas, car pendant la boucle, le programmé est figé et tant que la boucle n'est pas terminé on peut rien faire. C'est que une fois que la boucle est finie que je peux bouger la barre du bas.
que faire ???


Déplacement de la balle:

if (event.type == pygame.KEYUP and event.key == K_RETURN):
for x in range(70):
posCircley = posCircley - 10
blit()
pygame.display.update()

if (case1Y == posCircley - 50):
for x in range(70):
posCircley = posCircley - 10
posCircley += 20
rebondirHaut()
if (posBarreX <= posCirclex <= posBarreX + 100 and posCircley == posBarreY):
print("detected")
for x in range(70):
posCirclex = posCirclex + deviation
posCircley -= 10

rebondirBas()

break
break


déplacement du rectangle du bas

if (event.type == pygame.KEYUP and event.key == K_RIGHT):
for x in range(7):
posBarreX += 30
blit()
pygame.display.update()
break


2) posCircley désigne la position de la balle en axe Y. Regardez et dites moi pourquoi non seulement ça print rien, et en plus le jeu ne recommence pas ???



#si la barre atterrit en bas de l'écran (640*480), le jeu doit recommencer
if posCircley >= 480:

print("recommencer")
menu()
pygame.display.flip()



merci d'avance
A voir également:

1 réponse

utilisateursansimagination Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   9
 
Salut !
J'avais déjà été confronté au problème soulevé par ta première question, le fait qu'on ne puisse pas faire exécuter deux trucs relativement indépendants à la fois. J'avais résolu ça de façon très artisanale (et pas du tout élégante) en créant deux programmes, exécutés par deux fenêtres disjointes : la première lit tes ordres de mouvement, qu'elle retranscrit dans un fichier, fichier lu en permanence dans la boucle du second, qui gère l'affichage de la barre et de la balle.
Bon courage !
0