sound und kommentare
This commit is contained in:
parent
f12bd0b5e8
commit
0f29929333
BIN
bruitstirs.wav
Normal file
BIN
bruitstirs.wav
Normal file
Binary file not shown.
BIN
invasion musique.mp3
Normal file
BIN
invasion musique.mp3
Normal file
Binary file not shown.
278
main.py
278
main.py
@ -1,173 +1,175 @@
|
|||||||
import pygame
|
import pygame
|
||||||
from pygame.locals import *
|
from pygame.locals import *
|
||||||
from random import randint
|
from random import randint
|
||||||
LARGEUR = 900
|
from pygame.mixer import music
|
||||||
HAUTEUR = 700
|
pygame.mixer.init()
|
||||||
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR))
|
|
||||||
fond = pygame.sprite.Sprite()
|
LARGEUR = 610 #largeur de la fenêtre
|
||||||
fond.image = pygame.image.load("terre.jpg").convert()
|
HAUTEUR = 600 #hauteur de la fenêtre
|
||||||
fond.rect = fond.image.get_rect()
|
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR)) #créer la fenêtre
|
||||||
fond.rect.x = 55
|
fond = pygame.sprite.Sprite() #créer un sprite
|
||||||
fond.rect.y = 0
|
fond.image = pygame.image.load("terre.jpg").convert() #charger l'image
|
||||||
def creer_ananas(pos_x, pos_y):
|
fond.rect = fond.image.get_rect() #obtenir les coordonnées de l'image
|
||||||
ananas = pygame.sprite.Sprite()
|
fond.rect.x = 0 #position x
|
||||||
pygame.sprite.Sprite.__init__(ananas)
|
fond.rect.y = 0 #position y
|
||||||
ananas.image = pygame.image.load("ananas.png").convert_alpha()
|
def creer_ananas(pos_x, pos_y): #créer un ananas
|
||||||
ananas.image = pygame.transform.scale(ananas.image,[200, 100])
|
ananas = pygame.sprite.Sprite() #créer un sprite
|
||||||
ananas.rect = ananas.image.get_rect()
|
pygame.sprite.Sprite.__init__(ananas) #initialiser le sprite
|
||||||
|
ananas.image = pygame.image.load("ananas.png").convert_alpha() #charger l'image
|
||||||
|
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
|
||||||
ananas.rect.x = pos_x
|
ananas.rect.x = pos_x
|
||||||
ananas.rect.y = pos_y
|
ananas.rect.y = pos_y
|
||||||
return ananas
|
return ananas #retourner l'ananas
|
||||||
|
|
||||||
def tirer_missiles(pos_x, pos_y):
|
def tirer_missiles(pos_x, pos_y): #créer un missile
|
||||||
missiles = pygame.sprite.Sprite()
|
missiles = pygame.sprite.Sprite() #créer un sprite
|
||||||
pygame.sprite.Sprite.__init__(missiles)
|
pygame.sprite.Sprite.__init__(missiles) #initialiser le sprite
|
||||||
missiles.image = pygame.image.load("missiles.png").convert_alpha()
|
missiles.image = pygame.image.load("missiles.png").convert_alpha() #charger l'image
|
||||||
missiles.image = pygame.transform.scale(missiles.image,[10, 100])
|
missiles.image = pygame.transform.scale(missiles.image,[10, 100]) #redimensionner l'image
|
||||||
missiles.rect = missiles.image.get_rect()
|
missiles.rect = missiles.image.get_rect() #obtenir les coordonnées de l'image
|
||||||
missiles.rect.x = pos_x
|
missiles.rect.x = pos_x
|
||||||
missiles.rect.y = pos_y
|
missiles.rect.y = pos_y
|
||||||
return missiles
|
return missiles
|
||||||
|
|
||||||
missiles = pygame.sprite.Sprite()
|
missiles = pygame.sprite.Sprite() #créer un sprite
|
||||||
liste_de_missiles = []
|
liste_de_missiles = [] #créer une liste
|
||||||
liste_sprites_missiles = pygame.sprite.Group()
|
liste_sprites_missiles = pygame.sprite.Group() #créer un groupe
|
||||||
|
|
||||||
pygame.sprite.LayeredUpdates()
|
pygame.sprite.LayeredUpdates() #mettre les sprites en ordre
|
||||||
pygame.init()
|
pygame.init()
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock() #créer un horloge
|
||||||
running = True
|
running = True #définir la variable running
|
||||||
avion = pygame.sprite.Sprite()
|
avion = pygame.sprite.Sprite()
|
||||||
pygame.sprite.Sprite.__init__(avion)
|
pygame.sprite.Sprite.__init__(avion) #initialiser le sprite
|
||||||
avion.image = pygame.image.load("avion.png").convert_alpha()
|
avion.image = pygame.image.load("avion.png").convert_alpha() #charger l'image
|
||||||
avion.image = pygame.transform.scale(avion.image,[120, 120])
|
avion.image = pygame.transform.scale(avion.image,[120, 120]) #redimensionner l'image
|
||||||
avion.rect = avion.image.get_rect()
|
avion.rect = avion.image.get_rect()
|
||||||
avion.rect.x = 200
|
avion.rect.x = 200 #position x
|
||||||
avion.rect.y = 400
|
avion.rect.y = 400 #position y
|
||||||
liste_des_sprites = pygame.sprite.LayeredUpdates()
|
liste_des_sprites = pygame.sprite.LayeredUpdates() #créer un groupe
|
||||||
liste_des_sprites.add(fond)
|
liste_des_sprites.add(fond) #ajouter le fond
|
||||||
liste_sprites_ananas = pygame.sprite.LayeredUpdates()
|
liste_sprites_ananas = pygame.sprite.LayeredUpdates()
|
||||||
liste_des_sprites.add(avion)
|
liste_des_sprites.add(avion) #ajouter l'avion
|
||||||
liste_d_ananas = []
|
liste_d_ananas = [] #créer une liste
|
||||||
|
|
||||||
police = pygame.font.Font(None, 25)
|
gameover = False #définir la variable gameover
|
||||||
texte = pygame.sprite.Sprite()
|
intro = int(input("Voulez-vous sauver la Terre ? 1 pour oui, 2 pour non"))
|
||||||
pygame.sprite.Sprite.__init__(texte)
|
if intro == 1:
|
||||||
texte.image = police.render("ALERTE! La planète Terre est attaquée par une flotte d’avions spatiaux!", 1, (10, 10, 10),(255, 90, 20))
|
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:
|
||||||
|
gameover == True #définir la variable gameover
|
||||||
|
print("Dommage, la fin du Monde est proche...")
|
||||||
|
avion.remove(liste_des_sprites) #enlever l'avion
|
||||||
|
|
||||||
|
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 = texte.image.get_rect()
|
||||||
texte.rect.centerx = 360
|
texte.rect.centerx = 310 #position x
|
||||||
texte.rect.centery = 30
|
texte.rect.centery = 20 #position y
|
||||||
liste_des_sprites.add(texte)
|
liste_des_sprites.add(texte) #ajouter le texte
|
||||||
|
|
||||||
police = pygame.font.Font(None, 20)
|
gameover = False #définir la variable gameover
|
||||||
texte2 = pygame.sprite.Sprite()
|
|
||||||
texte2.image = police.render("Vous vous trouvez dans l’engin SU-PER12. Votre mission est d’éliminer le plus d’ennemis possible!", 1, (10, 10, 10),(255, 90, 20))
|
|
||||||
texte2.rect = texte2.image.get_rect()
|
|
||||||
texte2.rect.centerx = 360
|
|
||||||
texte2.rect.centery = 60
|
|
||||||
liste_des_sprites.add(texte2)
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 20)
|
ananas_speed = 4 #définir la vitesse de l'ananas
|
||||||
texte3 = pygame.sprite.Sprite()
|
|
||||||
texte3.image = police.render("Pour ce faire, appuyez sur votre souris pour tirer et manoeuvrer votre SU-PER12!", 1, (10, 10, 10),(255, 90, 20))
|
|
||||||
texte3.rect = texte3.image.get_rect()
|
|
||||||
texte3.rect.centerx = 360
|
|
||||||
texte3.rect.centery = 80
|
|
||||||
liste_des_sprites.add(texte3)
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 20)
|
delay = 10 #définir le délai
|
||||||
texte4 = pygame.sprite.Sprite()
|
|
||||||
texte4.image = police.render("Bonne chance!", 1, (10, 10, 10),(255, 90, 20))
|
|
||||||
texte4.rect = texte4.image.get_rect()
|
|
||||||
texte4.rect.centerx = 360
|
|
||||||
texte4.rect.centery = 100
|
|
||||||
liste_des_sprites.add(texte4)
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 20)
|
missiles_sound = pygame.mixer.Sound("bruitstirs.wav") #créer un son
|
||||||
texte5 = pygame.sprite.Sprite()
|
|
||||||
texte5.image = police.render("ALERTE, PLANETE TERRE EST SOUS ATTAQUE", 1, (10, 10, 10),(255, 90, 20))
|
|
||||||
texte5.rect = texte5.image.get_rect()
|
|
||||||
texte5.rect.centerx = 360
|
|
||||||
texte5.rect.centery = 1500
|
|
||||||
liste_des_sprites.add(texte5)
|
|
||||||
|
|
||||||
gameover = False
|
music = pygame.mixer.music.load("musique fond.mp3") #charger la musique
|
||||||
|
|
||||||
ananas_speed = 4
|
|
||||||
|
|
||||||
while running:
|
while running: #tant que running est vrai
|
||||||
|
|
||||||
keys = pygame.key.get_pressed()
|
keys = pygame.key.get_pressed() #obtenir les touches appuyées
|
||||||
if keys[pygame.K_SPACE]:
|
if keys[pygame.K_SPACE] == True: #si la touche espace est appuyée
|
||||||
liste_des_sprites.remove(texte)
|
liste_des_sprites.remove(texte) #retirer le texte
|
||||||
liste_des_sprites.remove(texte1)
|
|
||||||
liste_des_sprites.remove(texte2)
|
|
||||||
liste_des_sprites.remove(texte3)
|
|
||||||
liste_des_sprites.remove(texte4)
|
|
||||||
liste_des_sprites.remove(texte5)
|
|
||||||
|
|
||||||
liste_des_sprites.draw(fenetre)
|
liste_des_sprites.draw(fenetre) #dessiner les sprites
|
||||||
liste_sprites_ananas.draw(fenetre)
|
liste_sprites_ananas.draw(fenetre)
|
||||||
liste_sprites_missiles.draw(fenetre)
|
liste_sprites_missiles.draw(fenetre) #dessiner les missiles
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get(): #pour chaque événement
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT: #si l'événement est quitter
|
||||||
running = False
|
running = False
|
||||||
if event.type == MOUSEMOTION:
|
if event.type == MOUSEMOTION: #si l'événement est la position de la souris
|
||||||
avion.rect.x = event.pos[0]
|
avion.rect.x = event.pos[0]
|
||||||
if event.type == MOUSEBUTTONDOWN:
|
if event.type == MOUSEBUTTONDOWN: #si l'événement est le clic de la souris
|
||||||
print("Vous avez tué l'ennemi! Continuez!")
|
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2) #créer un nouveau missile
|
||||||
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2)
|
pygame.mixer.Sound.play(missiles_sound) #jouer le son
|
||||||
liste_de_missiles.append(nouveau_missile) == [nouveau_missile]
|
liste_de_missiles.append(nouveau_missile) #ajouter le nouveau missile à la liste
|
||||||
liste_sprites_missiles.add(nouveau_missile) == pygame.sprite.Group(nouveau_missile)
|
liste_sprites_missiles.add(nouveau_missile) #ajouter le nouveau missile au groupe
|
||||||
|
|
||||||
if gameover == False:
|
if gameover == False: #si le jeu n'est pas terminé
|
||||||
nombre_aleatoire = randint(0, 100)
|
nombre_aleatoire = randint(0, 100) #obtenir un nombre aléatoire
|
||||||
if nombre_aleatoire == 100:
|
if nombre_aleatoire == 100: #si le nombre aléatoire est 100
|
||||||
position_x_aleatoire = randint(0, LARGEUR - 60)
|
position_x_aleatoire = randint(0, LARGEUR - 60)
|
||||||
nouvel_ananas = creer_ananas(position_x_aleatoire, -100)
|
nouvel_ananas = creer_ananas(position_x_aleatoire, -100) #créer une nouvelle ananas
|
||||||
liste_d_ananas.append(nouvel_ananas)
|
liste_d_ananas.append(nouvel_ananas) #l'ajouter à la liste
|
||||||
liste_sprites_ananas.add(nouvel_ananas)
|
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:
|
||||||
ananas.rect.y += ananas_speed
|
if ananas.delay_timer > 0: #si le délai est supérieur à 0
|
||||||
if ananas.rect.colliderect(avion):
|
ananas.delay_timer -= 1 #soustraire le délai d'un
|
||||||
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI")
|
|
||||||
liste_d_ananas.remove(ananas)
|
|
||||||
ananas.kill()
|
|
||||||
gameover = True
|
|
||||||
if ananas.rect.y > HAUTEUR:
|
|
||||||
gameover = True
|
|
||||||
police = pygame.font.Font(None, 36)
|
|
||||||
texte22 = pygame.sprite.Sprite()
|
|
||||||
pygame.sprite.Sprite.__init__(texte22)
|
|
||||||
texte22.image = police.render("Réessaye de tuer tout les ennemis!", 1, (10,10,10),(255, 90, 20))
|
|
||||||
texte22.rect = texte22.image.get_rect()
|
|
||||||
texte22.rect.centerx = 360
|
|
||||||
texte22.rect.centery = 500
|
|
||||||
liste_des_sprites.add(texte22)
|
|
||||||
|
|
||||||
police = pygame.font.Font(None, 36)
|
|
||||||
texte33 = pygame.sprite.Sprite()
|
|
||||||
pygame.sprite.Sprite.__init__(texte33)
|
|
||||||
texte33.image = police.render("L'ennemi est entré dans notre atmosphère!", 1, (10,10,10),(255, 90, 20))
|
|
||||||
texte33.rect = texte33.image.get_rect()
|
|
||||||
texte33.rect.centerx = 360
|
|
||||||
texte33.rect.centery = 450
|
|
||||||
liste_des_sprites.add(texte33)
|
|
||||||
|
|
||||||
for missiles in liste_de_missiles:
|
|
||||||
missiles.rect.y -= 10
|
|
||||||
if missiles.rect.y <= 0:
|
|
||||||
liste_de_missiles.remove(missiles)
|
|
||||||
missiles.kill()
|
|
||||||
else:
|
else:
|
||||||
for ananas in liste_d_ananas:
|
ananas.rect.y += ananas_speed #ajouter la vitesse à la position y de l'ananas
|
||||||
if ananas.rect.colliderect(missiles):
|
if ananas.rect.colliderect(avion): #si l'ananas touche l'avion
|
||||||
liste_d_ananas.remove(ananas)
|
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.")
|
||||||
ananas.kill()
|
police = pygame.font.Font(None, 50) #créer une police
|
||||||
liste_de_missiles.remove(missiles)
|
texte = pygame.sprite.Sprite() #créer un texte
|
||||||
missiles.kill()
|
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.centerx = 310
|
||||||
|
texte.rect.centery = 200
|
||||||
|
liste_des_sprites.add(texte) #ajouter le texte
|
||||||
|
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste
|
||||||
|
ananas.kill() #supprimer l'ananas
|
||||||
|
gameover = True #définir la variable gameover à 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
|
||||||
|
|
||||||
pygame.display.flip()
|
police = pygame.font.Font(None, 36)
|
||||||
fenetre.fill((0,0,0))
|
texte22 = pygame.sprite.Sprite() #créer un texte
|
||||||
clock.tick(50)
|
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)
|
||||||
|
texte33 = pygame.sprite.Sprite() #créer un texte
|
||||||
|
pygame.sprite.Sprite.__init__(texte33)
|
||||||
|
texte33.image = police.render("Réessayez de tuer tout les ennemis!", 1, (10,10,10),(255, 90, 20))
|
||||||
|
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
|
||||||
|
missiles.rect.y -= 10 #soustraire 10 à la position y du missile
|
||||||
|
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
|
||||||
|
missiles.kill() #supprimer le missile
|
||||||
|
else:
|
||||||
|
for ananas in liste_d_ananas: #pour chaque ananas
|
||||||
|
if ananas.rect.colliderect(missiles): #si l'ananas touche le missile
|
||||||
|
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste
|
||||||
|
ananas.kill() #supprimer l'ananas
|
||||||
|
liste_de_missiles.remove(missiles) #retirer le missile de la liste
|
||||||
|
missiles.kill() #supprimer le missile
|
||||||
|
|
||||||
|
pygame.display.flip() #mettre à jour la fenêtre
|
||||||
|
fenetre.fill((0,0,0)) #remplir la fenêtre avec la couleur noire
|
||||||
|
clock.tick(50) #mettre le nombre de frames par seconde
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
|
BIN
musique fond.mp3
Normal file
BIN
musique fond.mp3
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user