Files
e-To-Johannes-Hasenspiel/starten.py
T
2026-10-06 12:12:19 +02:00

86 lines
2.9 KiB
Python

# Importieren u. initialisieren der Pygame-Bibliothek
from meinspiel import MeinSpiel
from meinspiel import sound
import pygame
from pygame.locals import *
pygame.init()
# Variablen/KONSTANTEN setzen
Breite, Hoehe = 840, 840
Pixel = 60
FelderX, FelderY = 42, 42
FPS = 60
SCHWARZ = ( 0, 0, 0)
WEISS = ( 255, 255, 255)
Beigegelb = ( 226, 181, 97 )
pyGameBilderebene0 = []
pyGameBilderebene1 = []
pyGameBilderebene2 = []
xverschiebung = 0
yverschiebung = 0
verschiebung = [0,0]
gameover = pygame.image.load("Bilder/gameover.xcf")
# Bilder aus meinSpiel werden für pygame vorbereitet
meinspiel = MeinSpiel(FelderX, FelderY)
for fname in meinspiel.ebene0bilder:
pyGameBilderebene0.append(pygame.image.load(fname))
for fname in meinspiel.ebene1bilder:
pyGameBilderebene1.append(pygame.image.load(fname))
for fname in meinspiel.ebene2bilder:
pyGameBilderebene2.append(pygame.image.load(fname))
#Anfangskonfiguration für das Spielfeld wird geladen
meinspiel.anfangsKonfiguration()
# Definieren und Öffnen eines neuen Fensters
fenster = pygame.display.set_mode((Breite, Hoehe))
pygame.display.set_caption("Spiel Informatik Johannes Matzen Eb 2026")
clock = pygame.time.Clock()
# Schleife Hauptprogramm
while True:
if meinspiel.game_over == False:
sound.hintergrundmusik(sound)
else:
pass
verschiebung=[0,0]
# Überprüfen, ob Nutzer eine Aktion durchgeführt hat
for event in pygame.event.get():
# Beenden bei [ESC] oder [X]
if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE):
pygame.quit()
if event.type==KEYDOWN and meinspiel.game_over == False:
verschiebung = meinspiel.bewegen(event.key,xverschiebung,yverschiebung)
if event.key == pygame.K_SPACE:
meinspiel.angriff()
elif event.key == pygame.K_F3:
meinspiel.debug()
# Spielfeld löschen
xverschiebung += verschiebung[0]
yverschiebung += verschiebung[1]
for x in range(FelderX):
for y in range(FelderY):
fenster.blit(pyGameBilderebene0[meinspiel.ebene0feld[x][y]],((x+xverschiebung)*Pixel,(y+yverschiebung)*Pixel))
for x in range(FelderX):
for y in range(FelderY):
fenster.blit(pyGameBilderebene1[meinspiel.ebene1feld[x][y]],((x+xverschiebung)*Pixel,(y+yverschiebung)*Pixel))
for x in range(FelderX):
for y in range(FelderY):
fenster.blit(pyGameBilderebene2[meinspiel.ebene2feld[x][y]],((x+xverschiebung)*Pixel,(y+yverschiebung)*Pixel))
# Spielfeld/figuren zeichnen
if meinspiel.game_over == False:
meinspiel.Monster()
meinspiel.Monstergetroffen()
meinspiel.angriffzuruecksetzen()
meinspiel.Monsterangriff()
else:
fenster.blit(gameover,(0,0))
print(meinspiel.spielerleben)
# Fenster aktualisieren
pygame.display.flip()
clock.tick(FPS)