86 lines
2.9 KiB
Python
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) |