sound und kommentare
This commit is contained in:
parent
f12bd0b5e8
commit
4a2997b710
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.
260
main.py
260
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")
|
else:
|
||||||
liste_d_ananas.remove(ananas)
|
ananas.rect.y += ananas_speed #ajouter la vitesse à la position y de l'ananas
|
||||||
ananas.kill()
|
if ananas.rect.colliderect(avion): #si l'ananas touche l'avion
|
||||||
gameover = True
|
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.")
|
||||||
if ananas.rect.y > HAUTEUR:
|
police = pygame.font.Font(None, 50) #créer une police
|
||||||
|
texte = pygame.sprite.Sprite() #créer un texte
|
||||||
|
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
|
gameover = True
|
||||||
police = pygame.font.Font(None, 36)
|
police = pygame.font.Font(None, 36)
|
||||||
texte22 = pygame.sprite.Sprite()
|
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)
|
||||||
|
texte22 = pygame.sprite.Sprite() #créer un texte
|
||||||
pygame.sprite.Sprite.__init__(texte22)
|
pygame.sprite.Sprite.__init__(texte22)
|
||||||
texte22.image = police.render("Réessaye de tuer tout les ennemis!", 1, (10,10,10),(255, 90, 20))
|
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 = texte22.image.get_rect()
|
||||||
texte22.rect.centerx = 360
|
texte22.rect.centerx = 310
|
||||||
texte22.rect.centery = 500
|
texte22.rect.centery = 250
|
||||||
liste_des_sprites.add(texte22)
|
liste_des_sprites.add(texte22) #ajouter le texte22
|
||||||
|
|
||||||
police = pygame.font.Font(None, 36)
|
police = pygame.font.Font(None, 36)
|
||||||
texte33 = pygame.sprite.Sprite()
|
texte33 = pygame.sprite.Sprite() #créer un texte
|
||||||
pygame.sprite.Sprite.__init__(texte33)
|
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.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 = texte33.image.get_rect()
|
||||||
texte33.rect.centerx = 360
|
texte33.rect.centerx = 310
|
||||||
texte33.rect.centery = 450
|
texte33.rect.centery = 300
|
||||||
liste_des_sprites.add(texte33)
|
liste_des_sprites.add(texte33) #ajouter le texte33
|
||||||
|
|
||||||
for missiles in liste_de_missiles:
|
for missiles in liste_de_missiles: #pour chaque missile
|
||||||
missiles.rect.y -= 10
|
missiles.rect.y -= 10 #soustraire 10 à la position y du missile
|
||||||
if missiles.rect.y <= 0:
|
if missiles.rect.y <= 0: #si la position y du missile est inférieure ou égale à 0
|
||||||
liste_de_missiles.remove(missiles)
|
liste_de_missiles.remove(missiles) #retirer le missile de la liste
|
||||||
missiles.kill()
|
missiles.kill() #supprimer le missile
|
||||||
else:
|
else:
|
||||||
for ananas in liste_d_ananas:
|
for ananas in liste_d_ananas: #pour chaque ananas
|
||||||
if ananas.rect.colliderect(missiles):
|
if ananas.rect.colliderect(missiles): #si l'ananas touche le missile
|
||||||
liste_d_ananas.remove(ananas)
|
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste
|
||||||
ananas.kill()
|
ananas.kill() #supprimer l'ananas
|
||||||
liste_de_missiles.remove(missiles)
|
liste_de_missiles.remove(missiles) #retirer le missile de la liste
|
||||||
missiles.kill()
|
missiles.kill() #supprimer le missile
|
||||||
|
|
||||||
pygame.display.flip()
|
pygame.display.flip() #mettre à jour la fenêtre
|
||||||
fenetre.fill((0,0,0))
|
fenetre.fill((0,0,0)) #remplir la fenêtre avec la couleur noire
|
||||||
clock.tick(50)
|
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