Compare commits

..

3 Commits

Author SHA1 Message Date
86129dcfa6 init score 2024-12-25 22:24:01 +01:00
c09b8196b1 Kommentare 2024-12-25 22:23:53 +01:00
d853a442aa caitlin: fixes (starting) 2024-12-25 11:58:58 +01:00

View File

@ -1,32 +1,28 @@
import pygame import pygame
from pygame.locals import * from pygame.locals import *
from random import randint from random import randint
LARGEUR = 900
LARGEUR = 700
HAUTEUR = 700 HAUTEUR = 700
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR)) fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR))
fond = pygame.sprite.Sprite() fond = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(fond)
fond.image = pygame.image.load("terre.jpg").convert() fond.image = pygame.image.load("terre.jpg").convert()
fond.rect = fond.image.get_rect() fond.rect = fond.image.get_rect()
fond.rect.x = 0 fond.rect.x = 55
fond.rect.y = 0 fond.rect.y = 0
def creer_ananas(pos_x, pos_y): def creer_ananas(pos_x, pos_y):
ananas = pygame.sprite.Sprite() ananas = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(ananas) pygame.sprite.Sprite.__init__(ananas)
ananas.image = pygame.image.load("ananas.png").convert_alpha() ananas.image = pygame.image.load("ananas.png").convert_alpha()
ananas.image = pygame.transform.scale(ananas.image,[200, 100]) ananas.image = pygame.transform.scale(ananas.image,[200, 100])
ananas.rect = ananas.image.get_rect() ananas.rect = ananas.image.get_rect()
ananas.rect.x = pos_x ananas.rect.x = pos_x
ananas.rect.y = pos_y ananas.rect.y = pos_y
return ananas return ananas
pygame.init() pygame.init()
clock = pygame.time.Clock() clock = pygame.time.Clock()
running = True running = True
# Avion, das der Spieler steuert
avion = pygame.sprite.Sprite() avion = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(avion) pygame.sprite.Sprite.__init__(avion)
avion.image = pygame.image.load("avion.png").convert_alpha() avion.image = pygame.image.load("avion.png").convert_alpha()
@ -34,97 +30,109 @@ avion.image = pygame.transform.scale(avion.image,[120, 120])
avion.rect = avion.image.get_rect() avion.rect = avion.image.get_rect()
avion.rect.x = 200 avion.rect.x = 200
avion.rect.y = 400 avion.rect.y = 400
liste_des_sprites = pygame.sprite.LayeredUpdates() liste_des_sprites = pygame.sprite.LayeredUpdates()
liste_des_sprites.add(fond) liste_des_sprites.add(fond)
liste_sprites_ananas = pygame.sprite.LayeredUpdates() liste_sprites_ananas = pygame.sprite.LayeredUpdates()
liste_des_sprites.add(avion) liste_des_sprites.add(avion)
# Liste der ananas
liste_d_ananas = [] liste_d_ananas = []
# Hilfetext 1
police = pygame.font.Font(None, 30) police = pygame.font.Font(None, 25)
texte = pygame.sprite.Sprite() texte = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte) 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)) texte.image = police.render("ALERTE! La planète terre est attaquée par une flotte davions spatiaux!", 1, (10, 10, 10),(255, 90, 20))
texte.rect = texte.image.get_rect() texte.rect = texte.image.get_rect()
texte.rect.centerx = fenetre.get_rect().centerx texte.rect.centerx = 360
texte.rect.centery = fenetre.get_rect().centery texte.rect.centery = 30
liste_des_sprites.add(texte) liste_des_sprites.add(texte)
# Hilfetext 2
police = pygame.font.Font(None, 20)
texte2 = pygame.sprite.Sprite() texte2 = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte2)
texte2.image = police.render("Vous vous trouver dans lengin SU-PER12. Votre mission est déliminer le plus dennemis possible!", 1, (10, 10, 10),(255, 90, 20)) texte2.image = police.render("Vous vous trouver 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 = texte2.image.get_rect()
texte2.rect.centerx = 50 texte2.rect.centerx = 360
texte2.rect.centery = 70 texte2.rect.centery = 60
liste_des_sprites.add(texte2) liste_des_sprites.add(texte2)
# Hilfetext 3
police = pygame.font.Font(None, 20)
texte3 = pygame.sprite.Sprite() texte3 = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte3) texte3.image = police.render("Pour ce faire, appuyez sur « espace » pour tirer et bougez la souris pour manoeuvrer votre SU-PER12!", 1, (10, 10, 10),(255, 90, 20))
texte3.image = police.render("Pour ce faire, appuyez sur « espace » pour tirer et bougez la souris pour manoeuvrer votre SU-PER12!", 1, (10, 10, 10),(255, 90, 20))
texte3.rect = texte3.image.get_rect() texte3.rect = texte3.image.get_rect()
texte3.rect.centerx = 60 texte3.rect.centerx = 360
texte3.rect.centery = 80 texte3.rect.centery = 80
liste_des_sprites.add(texte3) liste_des_sprites.add(texte3)
# Hilfetext 4
police = pygame.font.Font(None, 20)
texte4 = pygame.sprite.Sprite() texte4 = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte4)
texte4.image = police.render("Bonne chance!", 1, (10, 10, 10),(255, 90, 20)) texte4.image = police.render("Bonne chance!", 1, (10, 10, 10),(255, 90, 20))
texte4.rect = texte4.image.get_rect() texte4.rect = texte4.image.get_rect()
texte4.rect.centerx = 70 texte4.rect.centerx = 360
texte4.rect.centery = 90 texte4.rect.centery = 100
liste_des_sprites.add(texte4) liste_des_sprites.add(texte4)
# Hilfetext 5
police = pygame.font.Font(None, 20)
texte5 = pygame.sprite.Sprite() texte5 = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte5)
texte5.image = police.render("ALERTE, PLANETE TERRE EST SOUS ATTAQUE", 1, (10, 10, 10),(255, 90, 20)) 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 = texte5.image.get_rect()
texte5.rect.centerx = 80 texte5.rect.centerx = 360
texte5.rect.centery = 100 texte5.rect.centery = 1500
liste_des_sprites.add(texte5) liste_des_sprites.add(texte5)
gameover = False gameover = False
score = 0 score = 0
# Hautschleife
while running: while running:
liste_des_sprites.draw(fenetre) liste_des_sprites.draw(fenetre)
liste_sprites_ananas.draw(fenetre) liste_sprites_ananas.draw(fenetre)
# Benutzer Aktionen auswerten
for event in pygame.event.get(): for event in pygame.event.get():
if event.type == pygame.QUIT: if event.type == pygame.QUIT:
# Spiel beenden, wenn X gedrückt wurde
running = False running = False
if event.type == MOUSEMOTION: if event.type == MOUSEMOTION:
# Bewegung des avion
avion.rect.x = event.pos[0] avion.rect.x = event.pos[0]
keys = pygame.key.get_pressed() keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]: if keys[pygame.K_SPACE]:
# Hilfetext bei Leertaste löschen
liste_des_sprites.remove(texte) liste_des_sprites.remove(texte)
# Steuerung des Spiels
if gameover == False: if gameover == False:
nombre_aleatoire = randint(0, 100) nombre_aleatoire = randint(0, 100)
if nombre_aleatoire == 100: if nombre_aleatoire == 100:
# Neues ananas erzeugen
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)
liste_d_ananas.append(nouvel_ananas) liste_d_ananas.append(nouvel_ananas)
liste_sprites_ananas.add(nouvel_ananas) liste_sprites_ananas.add(nouvel_ananas)
# Alle ananas verarbeiten
for ananas in liste_d_ananas: for ananas in liste_d_ananas:
ananas.rect.y += 5 ananas.rect.y += 5
if ananas.rect.colliderect(avion): if ananas.rect.colliderect(avion):
# ananas erfolgreich abgefangen
print("COLLISION") print("COLLISION")
score += 1 score += 1
liste_d_ananas.remove(ananas) liste_d_ananas.remove(ananas)
ananas.kill() ananas.kill()
if ananas.rect.y > HAUTEUR: if ananas.rect.y > HAUTEUR:
# ananas nicht abgefangen
gameover = True gameover = True
police = pygame.font.Font(None, 36) police = pygame.font.Font(None, 36)
texte = pygame.sprite.Sprite() texte = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte) pygame.sprite.Sprite.__init__(texte)
texte.image = police.render("Gameover. L'ennemi est entré dans notre atmosphère! Réessaye de tuer tout les ennemis! Score : "+ str(score), 1, (10, 10, 10),(255, 90, 20)) texte.image = police.render("Gameover. L'ennemi est entré dans notre atmosphère! Réessaye de tuer tout les ennemis! Score : "+ str(score), 1, (10, 10, 10),(255, 90, 20))
texte.rect = texte.image.get_rect() texte.rect = texte.image.get_rect()
texte.rect.centerx = fenetre.get_rect().centerx texte.rect.centerx = 360
texte.rect.centery = fenetre.get_rect().centery texte.rect.centery = 450
liste_des_sprites.add(texte) liste_des_sprites.add(texte)
pygame.display.flip() pygame.display.flip()
fenetre.fill((36,242,232)) fenetre.fill((36,242,232))