sound und kommentare

This commit is contained in:
Stefan Liebl 2025-01-05 16:09:27 +01:00
parent f12bd0b5e8
commit 4a2997b710
4 changed files with 137 additions and 135 deletions

BIN
bruitstirs.wav Normal file

Binary file not shown.

BIN
invasion_musique.mp3 Normal file

Binary file not shown.

272
main.py
View File

@ -1,173 +1,175 @@
import pygame
from pygame.locals import *
from random import randint
LARGEUR = 900
HAUTEUR = 700
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR))
fond = pygame.sprite.Sprite()
fond.image = pygame.image.load("terre.jpg").convert()
fond.rect = fond.image.get_rect()
fond.rect.x = 55
fond.rect.y = 0
def creer_ananas(pos_x, pos_y):
ananas = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(ananas)
ananas.image = pygame.image.load("ananas.png").convert_alpha()
ananas.image = pygame.transform.scale(ananas.image,[200, 100])
ananas.rect = ananas.image.get_rect()
from pygame.mixer import music
pygame.mixer.init()
LARGEUR = 610 #largeur de la fenêtre
HAUTEUR = 600 #hauteur de la fenêtre
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR)) #créer la fenêtre
fond = pygame.sprite.Sprite() #créer un sprite
fond.image = pygame.image.load("terre.jpg").convert() #charger l'image
fond.rect = fond.image.get_rect() #obtenir les coordonnées de l'image
fond.rect.x = 0 #position x
fond.rect.y = 0 #position y
def creer_ananas(pos_x, pos_y): #créer un ananas
ananas = pygame.sprite.Sprite() #créer un sprite
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.y = pos_y
return ananas
return ananas #retourner l'ananas
def tirer_missiles(pos_x, pos_y):
missiles = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(missiles)
missiles.image = pygame.image.load("missiles.png").convert_alpha()
missiles.image = pygame.transform.scale(missiles.image,[10, 100])
missiles.rect = missiles.image.get_rect()
def tirer_missiles(pos_x, pos_y): #créer un missile
missiles = pygame.sprite.Sprite() #créer un sprite
pygame.sprite.Sprite.__init__(missiles) #initialiser le sprite
missiles.image = pygame.image.load("missiles.png").convert_alpha() #charger l'image
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
missiles.rect.x = pos_x
missiles.rect.y = pos_y
return missiles
missiles = pygame.sprite.Sprite()
liste_de_missiles = []
liste_sprites_missiles = pygame.sprite.Group()
missiles = pygame.sprite.Sprite() #créer un sprite
liste_de_missiles = [] #créer une liste
liste_sprites_missiles = pygame.sprite.Group() #créer un groupe
pygame.sprite.LayeredUpdates()
pygame.init()
clock = pygame.time.Clock()
running = True
avion = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(avion)
avion.image = pygame.image.load("avion.png").convert_alpha()
avion.image = pygame.transform.scale(avion.image,[120, 120])
pygame.sprite.LayeredUpdates() #mettre les sprites en ordre
pygame.init()
clock = pygame.time.Clock() #créer un horloge
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
avion.rect.y = 400
liste_des_sprites = pygame.sprite.LayeredUpdates()
liste_des_sprites.add(fond)
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)
liste_d_ananas = []
liste_des_sprites.add(avion) #ajouter l'avion
liste_d_ananas = [] #créer une liste
police = pygame.font.Font(None, 25)
texte = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte)
texte.image = police.render("ALERTE! La planète Terre est attaquée par une flotte davions spatiaux!", 1, (10, 10, 10),(255, 90, 20))
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 davions spatiaux! Vous vous trouvez dans lengin SU-PER12. Votre mission est déliminer le plus dennemis 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.centerx = 360
texte.rect.centery = 30
liste_des_sprites.add(texte)
texte.rect.centerx = 310 #position x
texte.rect.centery = 20 #position y
liste_des_sprites.add(texte) #ajouter le texte
police = pygame.font.Font(None, 20)
texte2 = pygame.sprite.Sprite()
texte2.image = police.render("Vous vous trouvez dans lengin SU-PER12. Votre mission est déliminer le plus dennemis 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)
gameover = False #définir la variable gameover
police = pygame.font.Font(None, 20)
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)
ananas_speed = 4 #définir la vitesse de l'ananas
police = pygame.font.Font(None, 20)
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)
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
delay = 10 #définir le délai
ananas_speed = 4
missiles_sound = pygame.mixer.Sound("bruitstirs.wav") #créer un son
while running:
music = pygame.mixer.music.load("musique fond.mp3") #charger la musique
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
liste_des_sprites.remove(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)
while running: #tant que running est vrai
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_sprites_ananas.draw(fenetre)
liste_sprites_missiles.draw(fenetre)
for event in pygame.event.get():
if event.type == pygame.QUIT:
liste_sprites_missiles.draw(fenetre) #dessiner les missiles
for event in pygame.event.get(): #pour chaque événement
if event.type == pygame.QUIT: #si l'événement est quitter
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]
if event.type == MOUSEBUTTONDOWN:
print("Vous avez tué l'ennemi! Continuez!")
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2)
liste_de_missiles.append(nouveau_missile) == [nouveau_missile]
liste_sprites_missiles.add(nouveau_missile) == pygame.sprite.Group(nouveau_missile)
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
pygame.mixer.Sound.play(missiles_sound) #jouer le son
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:
nombre_aleatoire = randint(0, 100)
if nombre_aleatoire == 100:
if gameover == False: #si le jeu n'est pas terminé
nombre_aleatoire = randint(0, 100) #obtenir un nombre aléatoire
if nombre_aleatoire == 100: #si le nombre aléatoire est 100
position_x_aleatoire = randint(0, LARGEUR - 60)
nouvel_ananas = creer_ananas(position_x_aleatoire, -100)
liste_d_ananas.append(nouvel_ananas)
liste_sprites_ananas.add(nouvel_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_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:
ananas.rect.y += ananas_speed
if ananas.rect.colliderect(avion):
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI")
liste_d_ananas.remove(ananas)
ananas.kill()
gameover = True
if ananas.rect.y > HAUTEUR:
if ananas.delay_timer > 0: #si le délai est supérieur à 0
ananas.delay_timer -= 1 #soustraire le délai d'un
else:
ananas.rect.y += ananas_speed #ajouter la vitesse à la position y de l'ananas
if ananas.rect.colliderect(avion): #si l'ananas touche l'avion
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.")
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
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)
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.centerx = 360
texte22.rect.centery = 500
liste_des_sprites.add(texte22)
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()
texte33 = pygame.sprite.Sprite() #créer un texte
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.centerx = 360
texte33.rect.centery = 450
liste_des_sprites.add(texte33)
texte33.rect.centerx = 310
texte33.rect.centery = 300
liste_des_sprites.add(texte33) #ajouter le texte33
for missiles in liste_de_missiles:
missiles.rect.y -= 10
if missiles.rect.y <= 0:
liste_de_missiles.remove(missiles)
missiles.kill()
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:
if ananas.rect.colliderect(missiles):
liste_d_ananas.remove(ananas)
ananas.kill()
liste_de_missiles.remove(missiles)
missiles.kill()
pygame.display.flip()
fenetre.fill((0,0,0))
clock.tick(50)
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()

BIN
musique fond.mp3 Normal file

Binary file not shown.