Compare commits
2 Commits
77fe41fa99
...
04c815c1f3
Author | SHA1 | Date | |
---|---|---|---|
04c815c1f3 | |||
4a2997b710 |
BIN
gameover.mp3
BIN
gameover.mp3
Binary file not shown.
289
main.py
289
main.py
@ -1,238 +1,175 @@
|
|||||||
import pygame
|
import pygame
|
||||||
from pygame.locals import *
|
from pygame.locals import *
|
||||||
from random import randint
|
from random import randint
|
||||||
from pygame.mixer import music #musique
|
from pygame.mixer import music
|
||||||
pygame.mixer.init() #initialiser la musique
|
pygame.mixer.init()
|
||||||
|
|
||||||
LARGEUR = 610 #largeur de la fenêtre
|
LARGEUR = 610 #largeur de la fenêtre
|
||||||
HAUTEUR = 600 #hauteur de la fenêtre
|
HAUTEUR = 600 #hauteur de la fenêtre
|
||||||
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR)) #créer la fenêtre
|
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR)) #créer la fenêtre
|
||||||
fond = pygame.sprite.Sprite() #créer un sprite pour le fond de la terre
|
fond = pygame.sprite.Sprite() #créer un sprite
|
||||||
fond.image = pygame.image.load("terre.jpg").convert() #charger l'image de la terre
|
fond.image = pygame.image.load("terre.jpg").convert() #charger l'image
|
||||||
fond.rect = fond.image.get_rect() #obtenir les coordonnées de l'image de la terre
|
fond.rect = fond.image.get_rect() #obtenir les coordonnées de l'image
|
||||||
fond.rect.x = 0 #position x de l'image "terre.jpg"
|
fond.rect.x = 0 #position x
|
||||||
fond.rect.y = 0 #position y de l'image "terre.jpg"
|
fond.rect.y = 0 #position y
|
||||||
|
def creer_ananas(pos_x, pos_y): #créer un ananas
|
||||||
def creer_ananas(pos_x, pos_y): #créer un ananas (adversaire)
|
|
||||||
ananas = pygame.sprite.Sprite() #créer un sprite
|
ananas = pygame.sprite.Sprite() #créer un sprite
|
||||||
pygame.sprite.Sprite.__init__(ananas) #initialiser le sprite
|
pygame.sprite.Sprite.__init__(ananas) #initialiser le sprite
|
||||||
ananas.image = pygame.image.load("ananas.png").convert_alpha() #charger l'image de l'ananas
|
ananas.image = pygame.image.load("ananas.png").convert_alpha() #charger l'image
|
||||||
ananas.image = pygame.transform.scale(ananas.image,[200, 100]) #redimensionner l'image de l'ananas
|
ananas.image = pygame.transform.scale(ananas.image,[200, 100]) #redimensionner l'image
|
||||||
ananas.rect = ananas.image.get_rect() #obtenir les coordonnées de l'image de l'ananas
|
ananas.rect = ananas.image.get_rect() #obtenir les coordonnées de l'image
|
||||||
ananas.rect.x = pos_x # position x de l'image de l'ananas
|
ananas.rect.x = pos_x
|
||||||
ananas.rect.y = pos_y # position y de l'image de l'ananas
|
ananas.rect.y = pos_y
|
||||||
return ananas #retourner l'ananas
|
return ananas #retourner l'ananas
|
||||||
|
|
||||||
def tirer_missiles(pos_x, pos_y): #créer un missile
|
def tirer_missiles(pos_x, pos_y): #créer un missile
|
||||||
missiles = pygame.sprite.Sprite() #créer un sprite
|
missiles = pygame.sprite.Sprite() #créer un sprite
|
||||||
pygame.sprite.Sprite.__init__(missiles) #initialiser le sprite
|
pygame.sprite.Sprite.__init__(missiles) #initialiser le sprite
|
||||||
missiles.image = pygame.image.load("missiles.png").convert_alpha() #charger l'image du missile
|
missiles.image = pygame.image.load("missiles.png").convert_alpha() #charger l'image
|
||||||
missiles.image = pygame.transform.scale(missiles.image,[10, 100]) #redimensionner l'image du missile
|
missiles.image = pygame.transform.scale(missiles.image,[10, 100]) #redimensionner l'image
|
||||||
missiles.rect = missiles.image.get_rect() #obtenir les coordonnées de l'image du missile
|
missiles.rect = missiles.image.get_rect() #obtenir les coordonnées de l'image
|
||||||
missiles.rect.x = pos_x # position x de l'image du missile
|
missiles.rect.x = pos_x
|
||||||
missiles.rect.y = pos_y # position y de l'image du missile
|
missiles.rect.y = pos_y
|
||||||
return missiles #retourner le missile
|
return missiles
|
||||||
|
|
||||||
liste_sprites_ananas = pygame.sprite.LayeredUpdates() #créer une liste pour les ananas
|
missiles = pygame.sprite.Sprite() #créer un sprite
|
||||||
liste_de_missiles = [] #créer une liste vide pour stocker les missiles
|
liste_de_missiles = [] #créer une liste
|
||||||
liste_sprites_missiles = pygame.sprite.Group() #créer un groupe pour stocker les missiles
|
liste_sprites_missiles = pygame.sprite.Group() #créer un groupe
|
||||||
|
|
||||||
pygame.init() #initialiser pygame
|
pygame.sprite.LayeredUpdates() #mettre les sprites en ordre
|
||||||
clock = pygame.time.Clock() #créer un horloge pour contrôler la vitesse de rafraîchissement de la fenêtre
|
pygame.init()
|
||||||
|
clock = pygame.time.Clock() #créer un horloge
|
||||||
running = True #définir la variable running
|
running = True #définir la variable running
|
||||||
|
avion = pygame.sprite.Sprite()
|
||||||
|
pygame.sprite.Sprite.__init__(avion) #initialiser le sprite
|
||||||
|
avion.image = pygame.image.load("avion.png").convert_alpha() #charger l'image
|
||||||
|
avion.image = pygame.transform.scale(avion.image,[120, 120]) #redimensionner l'image
|
||||||
|
avion.rect = avion.image.get_rect()
|
||||||
|
avion.rect.x = 200 #position x
|
||||||
|
avion.rect.y = 400 #position y
|
||||||
|
liste_des_sprites = pygame.sprite.LayeredUpdates() #créer un groupe
|
||||||
|
liste_des_sprites.add(fond) #ajouter le fond
|
||||||
|
liste_sprites_ananas = pygame.sprite.LayeredUpdates()
|
||||||
|
liste_des_sprites.add(avion) #ajouter l'avion
|
||||||
|
liste_d_ananas = [] #créer une liste
|
||||||
|
|
||||||
avion = pygame.sprite.Sprite() #créer un sprite pour l'avion
|
gameover = False #définir la variable gameover
|
||||||
pygame.sprite.Sprite.__init__(avion) #initialiser le sprite de l'avion
|
intro = int(input("Voulez-vous sauver la Terre ? 1 pour oui, 2 pour non"))
|
||||||
avion.image = pygame.image.load("avion.png").convert_alpha() #charger l'image de l'avion
|
if intro == 1:
|
||||||
avion.image = pygame.transform.scale(avion.image,[120, 120]) #redimensionner l'image de l'avion
|
print("ALERTE! La planète Terre est attaquée par une flotte d’avions spatiaux! Vous vous trouvez dans l’engin SU-PER12. Votre mission est d’éliminer le plus d’ennemis possible! Pour ce faire, appuyez sur votre souris pour tirer et manoeuvrez-la en la pour bouger votre SU-PER12! Bonne chance!") #afficher un message
|
||||||
avion.rect = avion.image.get_rect() #obtenir les coordonnées de l'image de l'avion
|
|
||||||
avion.rect.x = 200 #position x de l'image de l'avion
|
else:
|
||||||
avion.rect.y = 450 #position y de l'image de l'avion
|
gameover == True #définir la variable gameover
|
||||||
liste_des_sprites = pygame.sprite.LayeredUpdates() #créer un groupe pour stocker les sprites
|
print("Dommage, la fin du Monde est proche...")
|
||||||
liste_des_sprites.add(fond) #ajouter le fond à la liste des sprites
|
avion.remove(liste_des_sprites) #enlever l'avion
|
||||||
liste_des_sprites.add(avion) #ajouter l'avion à la liste des sprites
|
|
||||||
liste_d_ananas = [] #créer une liste vide pour stocker les ananas
|
police = pygame.font.Font(None, 30) #créer une police
|
||||||
|
texte= pygame.sprite.Sprite()
|
||||||
|
texte.image = police.render("ALERTE, PLANETE TERRE EST SOUS ATTAQUE", 1, (10, 10, 10),(255, 90, 20)) #créer un texte
|
||||||
|
texte.rect = texte.image.get_rect()
|
||||||
|
texte.rect.centerx = 310 #position x
|
||||||
|
texte.rect.centery = 20 #position y
|
||||||
|
liste_des_sprites.add(texte) #ajouter le texte
|
||||||
|
|
||||||
gameover = False #définir la variable gameover
|
gameover = False #définir la variable gameover
|
||||||
|
|
||||||
intro = int(input("Voulez-vous sauver la Terre ? 1 pour oui, 2 pour non: ")) #demander à l'utilisateur s'il veut sauver la Terre
|
ananas_speed = 4 #définir la vitesse de l'ananas
|
||||||
sauver = (intro == 1)
|
|
||||||
|
|
||||||
if sauver == True: #si l'utilisateur veut sauver la Terre
|
delay = 10 #définir le délai
|
||||||
print("ALERTE! La planète Terre est attaquée par une flotte d’avions spatiaux! Vous vous trouvez dans l’engin SU-PER12. Votre mission est d’éliminer le plus d’ennemis possible! En éliminant les adversaires, vous gagnez 10 points. La planète sera sauvée, lorsque vous aurez atteind les 100 points! Pour ce faire, appuyez sur votre souris pour tirer et manoeuvrez-la en la pour bouger votre SU-PER12. Bonne chance!") #afficher un message
|
|
||||||
music = pygame.mixer.music.load("musique fond.mp3")
|
|
||||||
#charger la musique de fond correspondant à sauver == True
|
|
||||||
pygame.mixer.music.play(-1) #jouer la musique de fond en boucle
|
|
||||||
pygame.mixer.music.set_volume(0.3) # changer le volume de la musique de fond
|
|
||||||
|
|
||||||
else: #si l'utilisateur ne veut pas sauver la Terre
|
missiles_sound = pygame.mixer.Sound("bruitstirs.wav") #créer un son
|
||||||
gameover == True #définir la variable gameover
|
|
||||||
print("Dommage, la fin du Monde est proche...")
|
|
||||||
avion.kill() # enlever l'avion de la liste des sprites (et donc de la fenetre)
|
|
||||||
liste_sprites_missiles.empty() #enlever tout les missiles du groupe
|
|
||||||
music = pygame.mixer.music.load("invasion musique.mp3") #charger la musique de fond correspondant à sauver == False
|
|
||||||
pygame.mixer.music.play(1) #jouer la musique de fond qu'une seule fois
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 30) #créer une police
|
music = pygame.mixer.music.load("musique fond.mp3") #charger la musique
|
||||||
texte= pygame.sprite.Sprite() #créer un sprite
|
|
||||||
texte.image = police.render("ALERTE, PLANETE TERRE EST SOUS ATTAQUE", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour annoncer l'invasion
|
|
||||||
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
|
|
||||||
texte.rect.centerx = 310 #position x du texte
|
|
||||||
texte.rect.centery = 20 #position y du texte
|
|
||||||
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
|
|
||||||
|
|
||||||
rapidite_ananas = 4 # mouvement de l'ananas (4 pixels par refraichissement de la fenêtre))
|
|
||||||
|
|
||||||
delay = 10 #définir le délai (10sec) des ananas pour que l'utilisateur puisse lire la consigne
|
|
||||||
|
|
||||||
missiles_sound = pygame.mixer.Sound("bruitstirs.wav") #créer un son pour les missiles
|
|
||||||
|
|
||||||
timer = 0 #initialiser le timer
|
|
||||||
|
|
||||||
score = 0 #initialiser le score
|
|
||||||
|
|
||||||
while running: #tant que running est vrai
|
while running: #tant que running est vrai
|
||||||
if sauver == False: #si l'utilisateur choisit l'sauver == False
|
|
||||||
timer += 1 #incrément du timer à chaque phase d'exécution
|
|
||||||
if timer >= 30 * 60: #si le timer est plus grand ou égal à 30 sec * 60 cadres par sec
|
|
||||||
gameover = True #définir gameover comme True
|
|
||||||
music = pygame.mixer.music.load("gameover.mp3") #charger la musique du gameover
|
|
||||||
pygame.mixer.music.play(1)#jouer la musique du gameover qu'une seule fois
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 50) #créer une police pour le texte
|
|
||||||
texte = pygame.sprite.Sprite() #créer un texte pour le gameover
|
|
||||||
texte.image = police.render("GAMEOVER", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour le gameover
|
|
||||||
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
|
|
||||||
texte.rect.centerx = 310 #position x du texte
|
|
||||||
texte.rect.centery = 200 #position y du texte
|
|
||||||
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
|
|
||||||
texte = pygame.sprite.Sprite() #créer un second message
|
|
||||||
texte.image = police.render("INVASION ABOUTIE", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour informer le joueur de l'invasion
|
|
||||||
texte.rect = texte.image.get_rect() #obtenir les coordonnées de l'image
|
|
||||||
texte.rect.centerx = 310
|
|
||||||
texte.rect.centery = 240
|
|
||||||
liste_des_sprites.add(texte) #ajouter le texte
|
|
||||||
|
|
||||||
|
keys = pygame.key.get_pressed() #obtenir les touches appuyées
|
||||||
|
if keys[pygame.K_SPACE] == True: #si la touche espace est appuyée
|
||||||
|
liste_des_sprites.remove(texte) #retirer le texte
|
||||||
|
|
||||||
liste_des_sprites.draw(fenetre) #dessiner les sprites
|
liste_des_sprites.draw(fenetre) #dessiner les sprites
|
||||||
liste_sprites_ananas.draw(fenetre) #dessiner les ananas
|
liste_sprites_ananas.draw(fenetre)
|
||||||
liste_sprites_missiles.draw(fenetre) #dessiner les missiles
|
liste_sprites_missiles.draw(fenetre) #dessiner les missiles
|
||||||
for event in pygame.event.get(): #pour chaque événement
|
for event in pygame.event.get(): #pour chaque événement
|
||||||
if event.type == pygame.QUIT: #si l'événement est quitter
|
if event.type == pygame.QUIT: #si l'événement est quitter
|
||||||
running = False
|
running = False
|
||||||
if event.type == MOUSEMOTION: #si l'événement est la position de la souris
|
if event.type == MOUSEMOTION: #si l'événement est la position de la souris
|
||||||
avion.rect.x = event.pos[0]
|
avion.rect.x = min(event.pos[0], (LARGEUR - avion.rect.width))
|
||||||
if event.type == MOUSEBUTTONDOWN: #si l'événement est le clic de la souris
|
if event.type == MOUSEBUTTONDOWN: #si l'événement est le clic de la souris
|
||||||
if gameover == False and sauver == True: #if gameover is not true
|
|
||||||
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2) #créer un nouveau missile
|
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2) #créer un nouveau missile
|
||||||
pygame.mixer.Sound.play(missiles_sound) #jouer le son du tir
|
pygame.mixer.Sound.play(missiles_sound) #jouer le son
|
||||||
liste_de_missiles.append(nouveau_missile) #ajouter le nouveau missile à la liste
|
liste_de_missiles.append(nouveau_missile) #ajouter le nouveau missile à la liste
|
||||||
liste_sprites_missiles.add(nouveau_missile) #ajouter le nouveau missile au groupe
|
liste_sprites_missiles.add(nouveau_missile) #ajouter le nouveau missile au groupe
|
||||||
|
|
||||||
if gameover == False: #si le jeu n'est pas terminé
|
if gameover == False: #si le jeu n'est pas terminé
|
||||||
if score < 100: # only spawn ananas if score is less than 100
|
nombre_aleatoire = randint(0, 100) #obtenir un nombre aléatoire
|
||||||
nombre_aleatoire = randint(0, 100) #obtenir un nombre aléatoire pour contrôler la fréquence des ananas
|
|
||||||
if nombre_aleatoire == 100: #si le nombre aléatoire est 100
|
if nombre_aleatoire == 100: #si le nombre aléatoire est 100
|
||||||
position_x_aleatoire = randint(0, LARGEUR - 60) #obtenir une position x aléatoire pour l'ananas
|
position_x_aleatoire = randint(0, LARGEUR - 60)
|
||||||
nouvel_ananas = creer_ananas(position_x_aleatoire, -100) #créer une nouvelle ananas
|
nouvel_ananas = creer_ananas(position_x_aleatoire, -100) #créer une nouvelle ananas
|
||||||
liste_d_ananas.append(nouvel_ananas) #l'ajouter à la liste
|
liste_d_ananas.append(nouvel_ananas) #l'ajouter à la liste
|
||||||
liste_sprites_ananas.add(nouvel_ananas) #l'ajouter au groupe
|
liste_sprites_ananas.add(nouvel_ananas) #l'ajouter au groupe
|
||||||
nouvel_ananas.delay_timer = delay * 60 #définir le délai
|
nouvel_ananas.delay_timer = delay * 60 #définir le délai
|
||||||
for ananas in liste_d_ananas:
|
for ananas in liste_d_ananas:
|
||||||
if ananas.delay_timer > 0: #si le délai est supérieur à 0
|
if ananas.delay_timer > 0: #si le délai est supérieur à 0
|
||||||
ananas.delay_timer -= 1 #soustraire le délai d'une ananas
|
ananas.delay_timer -= 1 #soustraire le délai d'un
|
||||||
else:
|
else:
|
||||||
ananas.rect.y += rapidite_ananas #ajouter la vitesse à la position y de l'ananas
|
ananas.rect.y += ananas_speed #ajouter la vitesse à la position y de l'ananas
|
||||||
if ananas.rect.colliderect(avion) and sauver == True: #si l'ananas touche l'avion ET si sauver == True
|
if ananas.rect.colliderect(avion): #si l'ananas touche l'avion
|
||||||
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.") #message pour informer la mort de l'utilisateur
|
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.")
|
||||||
avion.kill() #enlever l'avion de la liste des sprites (et donc de la fenetre))
|
police = pygame.font.Font(None, 50) #créer une police
|
||||||
music = pygame.mixer.music.load("gameover.mp3") #charger la musique du gameover
|
|
||||||
pygame.mixer.music.play(1) #jouer la musique du gameover qu'une seule fois
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 50) #créer une police pour le texte
|
|
||||||
texte = pygame.sprite.Sprite() #créer un texte
|
texte = pygame.sprite.Sprite() #créer un texte
|
||||||
texte.image = police.render("GAMEOVER", 1, (10, 10, 10),(255, 90, 20))
|
texte.image = police.render("GAMEOVER", 1, (10, 10, 10),(255, 90, 20))
|
||||||
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
|
texte.rect = texte.image.get_rect() #obtenir les coordonnées de l'image
|
||||||
texte.rect.centerx = 310 #position x du texte
|
texte.rect.centerx = 310
|
||||||
texte.rect.centery = 200 #position y du texte
|
texte.rect.centery = 200
|
||||||
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
|
liste_des_sprites.add(texte) #ajouter le texte
|
||||||
|
|
||||||
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste
|
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste
|
||||||
ananas.kill() #supprimer l'ananas (de la fenetre)
|
ananas.kill() #supprimer l'ananas
|
||||||
gameover = True #définir la variable gameover comme vrai
|
gameover = True #définir la variable gameover à vrai
|
||||||
|
if ananas.rect.y > HAUTEUR: #si l'ananas dépasse la hauteur de la fenêtre
|
||||||
if ananas.rect.y > HAUTEUR: #si l'ananas dépasse l'hauteur de la fenêtre
|
gameover = True
|
||||||
|
police = pygame.font.Font(None, 36)
|
||||||
if sauver == False: #si l'utilisateur a choisi de ne pas sauver la Terre
|
texte1 = pygame.sprite.Sprite() #créer un texte
|
||||||
gameover = False #définir la variable gameover comme faux
|
pygame.sprite.Sprite.__init__(texte1) #initialiser le sprite
|
||||||
else:
|
texte1.image = police.render("GAMEOVER", 1, (10,10,10),(255, 90, 20))
|
||||||
gameover = True #définir la variable gameover comme vrai
|
texte1.rect = texte1.image.get_rect()
|
||||||
|
texte1.rect.centerx = 310
|
||||||
|
texte1.rect.centery = 200
|
||||||
|
liste_des_sprites.add(texte1) #ajouter le texte1
|
||||||
|
|
||||||
police = pygame.font.Font(None, 36)
|
police = pygame.font.Font(None, 36)
|
||||||
texte1 = pygame.sprite.Sprite() #créer un texte du gameover
|
texte22 = pygame.sprite.Sprite() #créer un texte
|
||||||
pygame.sprite.Sprite.__init__(texte1) #initialiser le sprite
|
pygame.sprite.Sprite.__init__(texte22)
|
||||||
texte1.image = police.render("GAMEOVER", 1, (10,10,10),(255, 90, 20)) #créer un texte du gameover
|
texte22.image = police.render("L'ennemi est entré dans notre atmosphère!", 1, (10,10,10),(255, 90, 20))
|
||||||
texte1.rect = texte1.image.get_rect() #obtenir les coordonnées du texte
|
texte22.rect = texte22.image.get_rect()
|
||||||
texte1.rect.centerx = 310 #position x du texte
|
texte22.rect.centerx = 310
|
||||||
texte1.rect.centery = 200 #position y du texte
|
texte22.rect.centery = 250
|
||||||
liste_des_sprites.add(texte1) #ajouter le texte1 à la liste des sprites
|
liste_des_sprites.add(texte22) #ajouter le texte22
|
||||||
|
|
||||||
police = pygame.font.Font(None, 36) #créer une police pour le texte
|
police = pygame.font.Font(None, 36)
|
||||||
texte22 = pygame.sprite.Sprite() #créer un texte pour informer de l'invasion des adversaires
|
texte33 = pygame.sprite.Sprite() #créer un texte
|
||||||
pygame.sprite.Sprite.__init__(texte22) #initialiser le sprite
|
pygame.sprite.Sprite.__init__(texte33)
|
||||||
texte22.image = police.render("L'ennemi est entré dans notre atmosphère!", 1, (10,10,10),(255, 90, 20)) #créer un texte pour informer de l'invasion des adversaires
|
texte33.image = police.render("Réessayez de tuer tout les ennemis!", 1, (10,10,10),(255, 90, 20))
|
||||||
texte22.rect = texte22.image.get_rect() #obtenir les coordonnées du texte
|
texte33.rect = texte33.image.get_rect()
|
||||||
texte22.rect.centerx = 310 #position x du texte
|
texte33.rect.centerx = 310
|
||||||
texte22.rect.centery = 250 #position y du texte
|
texte33.rect.centery = 300
|
||||||
liste_des_sprites.add(texte22) #ajouter le texte22 à la liste des sprites
|
liste_des_sprites.add(texte33) #ajouter le texte33
|
||||||
|
|
||||||
police = pygame.font.Font(None, 36) #créer une police pour le texte
|
for missiles in liste_de_missiles: #pour chaque missile
|
||||||
texte33 = pygame.sprite.Sprite() #créer un texte motivant l'utilisateur d'une (nouvelle) mission
|
missiles.rect.y -= 10 #soustraire 10 à la position y du missile
|
||||||
pygame.sprite.Sprite.__init__(texte33) #initialiser le sprite
|
|
||||||
texte33.image = police.render("Réessayez de tuer tout les ennemis!", 1, (10,10,10),(255, 90, 20)) #créer un texte motivant l'utilisateur d'une (nouvelle) mission
|
|
||||||
texte33.rect = texte33.image.get_rect() #obtenir les coordonnées du texte
|
|
||||||
texte33.rect.centerx = 310 #position x du texte
|
|
||||||
texte33.rect.centery = 300 #position y du texte
|
|
||||||
liste_des_sprites.add(texte33) #ajouter le texte33 à la liste des sprites
|
|
||||||
|
|
||||||
for missiles in liste_de_missiles: #pour chaque missile dans la liste des missiles
|
|
||||||
missiles.rect.y -= 10 #soustraire 10 à la position y du missile (10 pixels, le missile monte dans l'écran)
|
|
||||||
if missiles.rect.y <= 0: #si la position y du missile est inférieure ou égale à 0
|
if missiles.rect.y <= 0: #si la position y du missile est inférieure ou égale à 0
|
||||||
liste_de_missiles.remove(missiles) #retirer le missile de la liste
|
liste_de_missiles.remove(missiles) #retirer le missile de la liste
|
||||||
missiles.kill() #supprimer le missile (de la fenetre)
|
missiles.kill() #supprimer le missile
|
||||||
else:
|
else:
|
||||||
for ananas in liste_d_ananas: #pour chaque ananas dans la liste des ananas
|
for ananas in liste_d_ananas: #pour chaque ananas
|
||||||
if ananas.rect.colliderect(missiles): #si l'ananas touche le missile
|
if ananas.rect.colliderect(missiles): #si l'ananas touche le missile
|
||||||
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste des ananas
|
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste
|
||||||
ananas.kill() #supprimer l'ananas (de la fenetre)
|
ananas.kill() #supprimer l'ananas
|
||||||
liste_de_missiles.remove(missiles) #retirer le missile de la liste des missiles
|
liste_de_missiles.remove(missiles) #retirer le missile de la liste
|
||||||
missiles.kill() #supprimer le missile (de la fenetre)
|
missiles.kill() #supprimer le missile
|
||||||
score += 10 # augmenter le score de l'utilisateur de 10 points
|
|
||||||
print(f"Score:", score) # print le score
|
|
||||||
texte_score = police.render("Score: " + str(score), 1, (10, 10, 10), (255, 90, 20)) #actualiser le texte du score
|
|
||||||
texte_score_rect = texte_score.get_rect() #obtenir les coordonnées du texte
|
|
||||||
texte_score_rect.topleft = (10, 10) #position du texte
|
|
||||||
if score >= 100: #vérifier le jeu pour une victoire
|
|
||||||
gameover = True #définir la variable gameover comme vrai
|
|
||||||
music = pygame.mixer.music.load("victoire.mp3") #charger la musique de la victoire
|
|
||||||
pygame.mixer.music.play(1) #jouer la musique de la victoire qu'une seule fois
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 50) #créer une police pour le texte
|
|
||||||
texte = pygame.sprite.Sprite() #créer un texte pour informer de la victoire
|
|
||||||
texte.image = police.render("VICTOIRE!", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour informer de la victoire
|
|
||||||
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
|
|
||||||
texte.rect.centerx = 310 #position x du texte
|
|
||||||
texte.rect.centery = 200 #position y du texte
|
|
||||||
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
|
|
||||||
|
|
||||||
texte = pygame.sprite.Sprite() #créer un second texte pour informer de la victoire
|
|
||||||
texte.image = police.render("LA TERRE EST SAUVÉE!", 1, (10, 10, 10),(255, 90, 20)) #créer un second texte pour informer de la victoire
|
|
||||||
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
|
|
||||||
texte.rect.centerx = 310 #position x du texte
|
|
||||||
texte.rect.centery = 235 #position y du texte
|
|
||||||
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
|
|
||||||
|
|
||||||
pygame.display.flip() #mettre à jour la fenêtre
|
pygame.display.flip() #mettre à jour la fenêtre
|
||||||
fenetre.fill((0,0,0)) #remplir la fenêtre avec la couleur noire (derrière la terre)
|
fenetre.fill((0,0,0)) #remplir la fenêtre avec la couleur noire
|
||||||
clock.tick(50) #mettre le nombre de cadres par sec
|
clock.tick(50) #mettre le nombre de frames par seconde
|
||||||
pygame.quit() #quitter pygame
|
pygame.quit()
|
||||||
|
BIN
victoire.mp3
BIN
victoire.mp3
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user