1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#_____________________creation d'un Thread___________________
class generateur_coord_cell(Thread):
"""Thread chargé simplement de générer un nombre donné de couples de coordonnées avec un intervalle de temps(delta_t) entre deux créations fixé.,
le thread ne se charge pas de l'affichage, du collage des images sinon il y aurait un problème de synchronisation avec le collage du fond ,
de l'image de la cellule du joueur et le rafraichissement qui sont, eux , gérés par le programme principal"""
def __init__(self,nombre, delta_t):
Thread.__init__(self)
self.nombre=nombre
self.delta_t=delta_t
def run(self):
"""Code à exécuter pendant l'exécution du thread."""
global coord_cellule # c'est une liste
compteur_cel=0
while compteur_cel<self.nombre: # tant que le nombre de couples de coordonnées de cellules crés est < self.nombre
coord_cellule.append((randint(10,890),randint(10,890))) # générer aleatoirement les coordonnées d'une nouvelle cellule
compteur_cel+=1
time.sleep(self.delta_t) # pause de delta_t secondes
#initialisation des variables
pos_cell_joueur=(400,400) # position initiale de la cellule rouge
continuer=1
compteur_cel=0 # nombre de cellules dans le décor
coord_cellule=[] # liste des coordonnées des cellules du décor
### _________________main prog_______________________________
#______________creation du thread______________________
thread_cellule = generateur_coord_cell(100,2) # génère 100 coordonnées de cellules , un couple toutes les 2 secondes
#_______________demarrage du thread____________________
thread_cellule.start()
while continuer==1:
fenetre.blit(fond,(0,0))
fenetre.blit(cell_joueur,pos_cell_joueur)
for i in range(len(coord_cellule)): #collage d'images
if i%3==0:
fenetre.blit(cellb,coord_cellule[i])
elif i%3==1:
fenetre.blit(cellj,coord_cellule[i])
else:
fenetre.blit(cellv,coord_cellule[i])
pygame.display.flip()
for event in pygame.event.get():
deplacement_cell_joueur()
if event.type==QUIT:
sys.exit
pygame.quit()
continuer = 0 |
Partager