Problèmes pour faire un casse brique en python

Fermé
elrking096 Messages postés 1115 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 28 novembre 2017 - Modifié par elrking096 le 26/05/2015 à 09:06
utilisateursansimagination Messages postés 15 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 11 mars 2017 - 27 août 2015 à 18:55
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

1 réponse

utilisateursansimagination Messages postés 15 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 11 mars 2017 9
27 août 2015 à 18:55
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