Compare commits
4 Commits
04c815c1f3
...
77fe41fa99
Author | SHA1 | Date | |
---|---|---|---|
77fe41fa99 | |||
d59cec1127 | |||
f14cf43d4a | |||
0f29929333 |
BIN
gameover.mp3
Normal file
BIN
gameover.mp3
Normal file
Binary file not shown.
311
main.py
311
main.py
@ -1,175 +1,238 @@
|
|||||||
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
|
from pygame.mixer import music #musique
|
||||||
pygame.mixer.init()
|
pygame.mixer.init() #initialiser la musique
|
||||||
|
|
||||||
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
|
fond = pygame.sprite.Sprite() #créer un sprite pour le fond de la terre
|
||||||
fond.image = pygame.image.load("terre.jpg").convert() #charger l'image
|
fond.image = pygame.image.load("terre.jpg").convert() #charger l'image de la terre
|
||||||
fond.rect = fond.image.get_rect() #obtenir les coordonnées de l'image
|
fond.rect = fond.image.get_rect() #obtenir les coordonnées de l'image de la terre
|
||||||
fond.rect.x = 0 #position x
|
fond.rect.x = 0 #position x de l'image "terre.jpg"
|
||||||
fond.rect.y = 0 #position y
|
fond.rect.y = 0 #position y de l'image "terre.jpg"
|
||||||
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
|
ananas.image = pygame.image.load("ananas.png").convert_alpha() #charger l'image de l'ananas
|
||||||
ananas.image = pygame.transform.scale(ananas.image,[200, 100]) #redimensionner l'image
|
ananas.image = pygame.transform.scale(ananas.image,[200, 100]) #redimensionner l'image de l'ananas
|
||||||
ananas.rect = ananas.image.get_rect() #obtenir les coordonnées de l'image
|
ananas.rect = ananas.image.get_rect() #obtenir les coordonnées de l'image de l'ananas
|
||||||
ananas.rect.x = pos_x
|
ananas.rect.x = pos_x # position x de l'image de l'ananas
|
||||||
ananas.rect.y = pos_y
|
ananas.rect.y = pos_y # position y de l'image de l'ananas
|
||||||
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
|
missiles.image = pygame.image.load("missiles.png").convert_alpha() #charger l'image du missile
|
||||||
missiles.image = pygame.transform.scale(missiles.image,[10, 100]) #redimensionner l'image
|
missiles.image = pygame.transform.scale(missiles.image,[10, 100]) #redimensionner l'image du missile
|
||||||
missiles.rect = missiles.image.get_rect() #obtenir les coordonnées de l'image
|
missiles.rect = missiles.image.get_rect() #obtenir les coordonnées de l'image du missile
|
||||||
missiles.rect.x = pos_x
|
missiles.rect.x = pos_x # position x de l'image du missile
|
||||||
missiles.rect.y = pos_y
|
missiles.rect.y = pos_y # position y de l'image du missile
|
||||||
return missiles
|
return missiles #retourner le missile
|
||||||
|
|
||||||
missiles = pygame.sprite.Sprite() #créer un sprite
|
liste_sprites_ananas = pygame.sprite.LayeredUpdates() #créer une liste pour les ananas
|
||||||
liste_de_missiles = [] #créer une liste
|
liste_de_missiles = [] #créer une liste vide pour stocker les missiles
|
||||||
liste_sprites_missiles = pygame.sprite.Group() #créer un groupe
|
liste_sprites_missiles = pygame.sprite.Group() #créer un groupe pour stocker les missiles
|
||||||
|
|
||||||
pygame.sprite.LayeredUpdates() #mettre les sprites en ordre
|
pygame.init() #initialiser pygame
|
||||||
pygame.init()
|
clock = pygame.time.Clock() #créer un horloge pour contrôler la vitesse de rafraîchissement de la fenêtre
|
||||||
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 = pygame.sprite.Sprite() #créer un sprite pour l'avion
|
||||||
avion.image = pygame.image.load("avion.png").convert_alpha() #charger l'image
|
pygame.sprite.Sprite.__init__(avion) #initialiser le sprite de l'avion
|
||||||
avion.image = pygame.transform.scale(avion.image,[120, 120]) #redimensionner l'image
|
avion.image = pygame.image.load("avion.png").convert_alpha() #charger l'image de l'avion
|
||||||
avion.rect = avion.image.get_rect()
|
avion.image = pygame.transform.scale(avion.image,[120, 120]) #redimensionner l'image de l'avion
|
||||||
avion.rect.x = 200 #position x
|
avion.rect = avion.image.get_rect() #obtenir les coordonnées de l'image de l'avion
|
||||||
avion.rect.y = 400 #position y
|
avion.rect.x = 200 #position x de l'image de l'avion
|
||||||
liste_des_sprites = pygame.sprite.LayeredUpdates() #créer un groupe
|
avion.rect.y = 450 #position y de l'image de l'avion
|
||||||
liste_des_sprites.add(fond) #ajouter le fond
|
liste_des_sprites = pygame.sprite.LayeredUpdates() #créer un groupe pour stocker les sprites
|
||||||
liste_sprites_ananas = pygame.sprite.LayeredUpdates()
|
liste_des_sprites.add(fond) #ajouter le fond à la liste des sprites
|
||||||
liste_des_sprites.add(avion) #ajouter l'avion
|
liste_des_sprites.add(avion) #ajouter l'avion à la liste des sprites
|
||||||
liste_d_ananas = [] #créer une liste
|
liste_d_ananas = [] #créer une liste vide pour stocker les ananas
|
||||||
|
|
||||||
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"))
|
|
||||||
if intro == 1:
|
|
||||||
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
|
|
||||||
|
|
||||||
else:
|
intro = int(input("Voulez-vous sauver la Terre ? 1 pour oui, 2 pour non: ")) #demander à l'utilisateur s'il veut sauver la Terre
|
||||||
|
sauver = (intro == 1)
|
||||||
|
|
||||||
|
if sauver == True: #si l'utilisateur veut sauver la Terre
|
||||||
|
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
|
||||||
gameover == True #définir la variable gameover
|
gameover == True #définir la variable gameover
|
||||||
print("Dommage, la fin du Monde est proche...")
|
print("Dommage, la fin du Monde est proche...")
|
||||||
avion.remove(liste_des_sprites) #enlever l'avion
|
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
|
police = pygame.font.Font(None, 30) #créer une police
|
||||||
texte= pygame.sprite.Sprite()
|
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
|
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()
|
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
|
||||||
texte.rect.centerx = 310 #position x
|
texte.rect.centerx = 310 #position x du texte
|
||||||
texte.rect.centery = 20 #position y
|
texte.rect.centery = 20 #position y du texte
|
||||||
liste_des_sprites.add(texte) #ajouter le texte
|
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
|
||||||
|
|
||||||
gameover = False #définir la variable gameover
|
rapidite_ananas = 4 # mouvement de l'ananas (4 pixels par refraichissement de la fenêtre))
|
||||||
|
|
||||||
ananas_speed = 4 #définir la vitesse de l'ananas
|
delay = 10 #définir le délai (10sec) des ananas pour que l'utilisateur puisse lire la consigne
|
||||||
|
|
||||||
delay = 10 #définir le délai
|
missiles_sound = pygame.mixer.Sound("bruitstirs.wav") #créer un son pour les missiles
|
||||||
|
|
||||||
missiles_sound = pygame.mixer.Sound("bruitstirs.wav") #créer un son
|
timer = 0 #initialiser le timer
|
||||||
|
|
||||||
music = pygame.mixer.music.load("musique fond.mp3") #charger la musique
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
keys = pygame.key.get_pressed() #obtenir les touches appuyées
|
police = pygame.font.Font(None, 50) #créer une police pour le texte
|
||||||
if keys[pygame.K_SPACE] == True: #si la touche espace est appuyée
|
texte = pygame.sprite.Sprite() #créer un texte pour le gameover
|
||||||
liste_des_sprites.remove(texte) #retirer le texte
|
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
|
||||||
|
|
||||||
liste_des_sprites.draw(fenetre) #dessiner les sprites
|
|
||||||
liste_sprites_ananas.draw(fenetre)
|
liste_des_sprites.draw(fenetre) #dessiner les sprites
|
||||||
|
liste_sprites_ananas.draw(fenetre) #dessiner les ananas
|
||||||
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 = min(event.pos[0], (LARGEUR - avion.rect.width))
|
avion.rect.x = event.pos[0]
|
||||||
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
|
||||||
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2) #créer un nouveau missile
|
if gameover == False and sauver == True: #if gameover is not true
|
||||||
pygame.mixer.Sound.play(missiles_sound) #jouer le son
|
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2) #créer un nouveau missile
|
||||||
liste_de_missiles.append(nouveau_missile) #ajouter le nouveau missile à la liste
|
pygame.mixer.Sound.play(missiles_sound) #jouer le son du tir
|
||||||
liste_sprites_missiles.add(nouveau_missile) #ajouter le nouveau missile au groupe
|
liste_de_missiles.append(nouveau_missile) #ajouter le nouveau missile à la liste
|
||||||
|
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é
|
||||||
nombre_aleatoire = randint(0, 100) #obtenir un nombre aléatoire
|
if score < 100: # only spawn ananas if score is less than 100
|
||||||
if nombre_aleatoire == 100: #si le nombre aléatoire est 100
|
nombre_aleatoire = randint(0, 100) #obtenir un nombre aléatoire pour contrôler la fréquence des ananas
|
||||||
position_x_aleatoire = randint(0, LARGEUR - 60)
|
if nombre_aleatoire == 100: #si le nombre aléatoire est 100
|
||||||
nouvel_ananas = creer_ananas(position_x_aleatoire, -100) #créer une nouvelle ananas
|
position_x_aleatoire = randint(0, LARGEUR - 60) #obtenir une position x aléatoire pour l'ananas
|
||||||
liste_d_ananas.append(nouvel_ananas) #l'ajouter à la liste
|
nouvel_ananas = creer_ananas(position_x_aleatoire, -100) #créer une nouvelle ananas
|
||||||
liste_sprites_ananas.add(nouvel_ananas) #l'ajouter au groupe
|
liste_d_ananas.append(nouvel_ananas) #l'ajouter à la liste
|
||||||
nouvel_ananas.delay_timer = delay * 60 #définir le délai
|
liste_sprites_ananas.add(nouvel_ananas) #l'ajouter au groupe
|
||||||
|
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'un
|
ananas.delay_timer -= 1 #soustraire le délai d'une ananas
|
||||||
else:
|
else:
|
||||||
ananas.rect.y += ananas_speed #ajouter la vitesse à la position y de l'ananas
|
ananas.rect.y += rapidite_ananas #ajouter la vitesse à la position y de l'ananas
|
||||||
if ananas.rect.colliderect(avion): #si l'ananas touche l'avion
|
if ananas.rect.colliderect(avion) and sauver == True: #si l'ananas touche l'avion ET si sauver == True
|
||||||
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.")
|
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.") #message pour informer la mort de l'utilisateur
|
||||||
police = pygame.font.Font(None, 50) #créer une police
|
avion.kill() #enlever l'avion de la liste des sprites (et donc de la fenetre))
|
||||||
|
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 de l'image
|
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
|
||||||
texte.rect.centerx = 310
|
texte.rect.centerx = 310 #position x du texte
|
||||||
texte.rect.centery = 200
|
texte.rect.centery = 200 #position y du texte
|
||||||
liste_des_sprites.add(texte) #ajouter le texte
|
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
|
||||||
|
|
||||||
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
|
ananas.kill() #supprimer l'ananas (de la fenetre)
|
||||||
gameover = True #définir la variable gameover à vrai
|
gameover = True #définir la variable gameover comme vrai
|
||||||
if ananas.rect.y > HAUTEUR: #si l'ananas dépasse la hauteur de la fenêtre
|
|
||||||
gameover = True
|
|
||||||
police = pygame.font.Font(None, 36)
|
|
||||||
texte1 = pygame.sprite.Sprite() #créer un texte
|
|
||||||
pygame.sprite.Sprite.__init__(texte1) #initialiser le sprite
|
|
||||||
texte1.image = police.render("GAMEOVER", 1, (10,10,10),(255, 90, 20))
|
|
||||||
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)
|
if ananas.rect.y > HAUTEUR: #si l'ananas dépasse l'hauteur de la fenêtre
|
||||||
texte22 = pygame.sprite.Sprite() #créer un texte
|
|
||||||
pygame.sprite.Sprite.__init__(texte22)
|
|
||||||
texte22.image = police.render("L'ennemi est entré dans notre atmosphère!", 1, (10,10,10),(255, 90, 20))
|
|
||||||
texte22.rect = texte22.image.get_rect()
|
|
||||||
texte22.rect.centerx = 310
|
|
||||||
texte22.rect.centery = 250
|
|
||||||
liste_des_sprites.add(texte22) #ajouter le texte22
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 36)
|
if sauver == False: #si l'utilisateur a choisi de ne pas sauver la Terre
|
||||||
texte33 = pygame.sprite.Sprite() #créer un texte
|
gameover = False #définir la variable gameover comme faux
|
||||||
pygame.sprite.Sprite.__init__(texte33)
|
else:
|
||||||
texte33.image = police.render("Réessayez de tuer tout les ennemis!", 1, (10,10,10),(255, 90, 20))
|
gameover = True #définir la variable gameover comme vrai
|
||||||
texte33.rect = texte33.image.get_rect()
|
|
||||||
texte33.rect.centerx = 310
|
|
||||||
texte33.rect.centery = 300
|
|
||||||
liste_des_sprites.add(texte33) #ajouter le texte33
|
|
||||||
|
|
||||||
for missiles in liste_de_missiles: #pour chaque missile
|
police = pygame.font.Font(None, 36)
|
||||||
missiles.rect.y -= 10 #soustraire 10 à la position y du missile
|
texte1 = pygame.sprite.Sprite() #créer un texte du gameover
|
||||||
|
pygame.sprite.Sprite.__init__(texte1) #initialiser le sprite
|
||||||
|
texte1.image = police.render("GAMEOVER", 1, (10,10,10),(255, 90, 20)) #créer un texte du gameover
|
||||||
|
texte1.rect = texte1.image.get_rect() #obtenir les coordonnées du texte
|
||||||
|
texte1.rect.centerx = 310 #position x du texte
|
||||||
|
texte1.rect.centery = 200 #position y du texte
|
||||||
|
liste_des_sprites.add(texte1) #ajouter le texte1 à la liste des sprites
|
||||||
|
|
||||||
|
police = pygame.font.Font(None, 36) #créer une police pour le texte
|
||||||
|
texte22 = pygame.sprite.Sprite() #créer un texte pour informer de l'invasion des adversaires
|
||||||
|
pygame.sprite.Sprite.__init__(texte22) #initialiser le sprite
|
||||||
|
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
|
||||||
|
texte22.rect = texte22.image.get_rect() #obtenir les coordonnées du texte
|
||||||
|
texte22.rect.centerx = 310 #position x du texte
|
||||||
|
texte22.rect.centery = 250 #position y du texte
|
||||||
|
liste_des_sprites.add(texte22) #ajouter le texte22 à la liste des sprites
|
||||||
|
|
||||||
|
police = pygame.font.Font(None, 36) #créer une police pour le texte
|
||||||
|
texte33 = pygame.sprite.Sprite() #créer un texte motivant l'utilisateur d'une (nouvelle) mission
|
||||||
|
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
|
missiles.kill() #supprimer le missile (de la fenetre)
|
||||||
else:
|
else:
|
||||||
for ananas in liste_d_ananas: #pour chaque ananas
|
for ananas in liste_d_ananas: #pour chaque ananas dans la liste des 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
|
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste des ananas
|
||||||
ananas.kill() #supprimer l'ananas
|
ananas.kill() #supprimer l'ananas (de la fenetre)
|
||||||
liste_de_missiles.remove(missiles) #retirer le missile de la liste
|
liste_de_missiles.remove(missiles) #retirer le missile de la liste des missiles
|
||||||
missiles.kill() #supprimer le missile
|
missiles.kill() #supprimer le missile (de la fenetre)
|
||||||
|
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
|
||||||
|
|
||||||
pygame.display.flip() #mettre à jour la fenêtre
|
police = pygame.font.Font(None, 50) #créer une police pour le texte
|
||||||
fenetre.fill((0,0,0)) #remplir la fenêtre avec la couleur noire
|
texte = pygame.sprite.Sprite() #créer un texte pour informer de la victoire
|
||||||
clock.tick(50) #mettre le nombre de frames par seconde
|
texte.image = police.render("VICTOIRE!", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour informer de la victoire
|
||||||
pygame.quit()
|
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
|
||||||
|
fenetre.fill((0,0,0)) #remplir la fenêtre avec la couleur noire (derrière la terre)
|
||||||
|
clock.tick(50) #mettre le nombre de cadres par sec
|
||||||
|
pygame.quit() #quitter pygame
|
||||||
|
BIN
victoire.mp3
Normal file
BIN
victoire.mp3
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user