This commit is contained in:
alstergym
2026-09-29 12:10:58 +02:00
parent a6cd5890bf
commit 937085726c
6 changed files with 44 additions and 48 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+3 -1
View File
@@ -14,8 +14,10 @@ Ich habe ein paar Bugs entfernt (z.B. beim Laden der Grafiken) und versucht, das
Zu Hause habe ich es endlich geschafft, das Raster zu verschieben. Zu Hause habe ich es endlich geschafft, das Raster zu verschieben.
#### 22.09. #### 22.09.
Ich habe ein Monster programmiert, das scih zufällig bewegt. Es bewegt sich aber noch nicht ganz so schön...
#### 29.09.
Ich habe das Spielfeld in Ebenen augeteilt. Eine für den Hintergrund und eine für die Spielfiguren.
+24 -37
View File
@@ -7,47 +7,42 @@ pygame.mixer.init()
class MeinSpiel: class MeinSpiel:
hintergrundstile = ["Sand","Gras"] hintergrundstile = ["Sand","Gras"]
hintergrundstil = random.choice(hintergrundstile) hintergrundstil = random.choice(hintergrundstile)
bilder = ["Bilder/Spieler.xcf"] ebene0bilder = []
for i in range(6): for i in range(6):
bilder.append("Bilder/"+hintergrundstil+str(i+1)+".xcf") ebene0bilder.append("Bilder/"+hintergrundstil+str(i+1)+".xcf")
bilder.append("Bilder/Monster.xcf") ebene0feld = []
spielfeld = [] ebene1bilder = ["Bilder/leer.xcf","Bilder/Spieler.xcf","Bilder/Monster.xcf",]
feldunterspieler=random.randint(1,5) ebene1feld = []
felduntermonster=random.randint(1,5)
game_over = False game_over = False
def __init__(self, felderX, felderY): def __init__(self, felderX, felderY):
for x in range(felderX): for x in range(felderX):
self.spielfeld.append([]) self.ebene0feld.append([])
for y in range(felderY): for y in range(felderY):
self.spielfeld[x].append(random.randint(1,6)) self.ebene0feld[x].append(random.randint(0,5))
for x in range(felderX):
self.ebene1feld.append([])
for y in range(felderY):
self.ebene1feld[x].append(0)
def anfangsKonfiguration(self): def anfangsKonfiguration(self):
self.spielerx = random.randint(5,9) self.spielerx = random.randint(5,9)
self.spielery = random.randint(5,9) self.spielery = random.randint(5,9)
self.spielfeld[self.spielerx][self.spielery] = 1 self.ebene1feld[self.spielerx][self.spielery] = 1
self.monsterx = random.randint(5,9) self.monsterx = random.randint(5,9)
self.monstery = random.randint(5,9) self.monstery = random.randint(5,9)
self.spielfeld[self.monsterx][self.monstery] = 1 self.ebene1feld[self.monsterx][self.monstery] = 2
def spawnSpieler(self): def spawnSpieler(self):
self.spielfeld[self.spielerx][self.spielery] = 0
self.spielfeld[self.monsterx][self.monstery] = self.felduntermonster
self.altmonsterx = self.monsterx self.altmonsterx = self.monsterx
self.altmonstery = self.monstery self.altmonstery = self.monstery
self.felduntermonsteralt = self.felduntermonster
self.monsterx,self.monstery = monster.bewegen(monster,self.monsterx,self.monstery) self.monsterx,self.monstery = monster.bewegen(monster,self.monsterx,self.monstery)
self.felduntermonster = self.spielfeld[self.monsterx][self.monstery] if self.ebene0feld[self.monsterx][self.monstery] == 5:
self.ebene1feld[self.altmonsterx][self.altmonstery] = 2
if self.felduntermonster != 6: self.ebene1feld[self.monsterx][self.monstery] = 0
self.spielfeld[self.monsterx][self.monstery] = 7
else:
self.spielfeld[self.altmonsterx][self.altmonstery] = 7
self.spielfeld[self.monsterx][self.monstery] = 6
self.felduntermonster = self.felduntermonsteralt
self.monsterx = self.altmonsterx self.monsterx = self.altmonsterx
self.monstery = self.altmonstery self.monstery = self.altmonstery
@@ -66,9 +61,8 @@ class MeinSpiel:
def bewegen(self,taste,xverschiebungaktuell,yverschiebungaktuell): def bewegen(self,taste,xverschiebungaktuell,yverschiebungaktuell):
verschiebung = [0,0] verschiebung = [0,0]
self.spielfeld[self.spielerx][self.spielery] = self.feldunterspieler self.altspielerx = self.spielerx
posalt=[self.spielerx,self.spielery] self.altspielery = self.spielery
feldunterspieleralt=self.feldunterspieler
if taste == 1 and self.spielerx < 41: if taste == 1 and self.spielerx < 41:
self.rechts() self.rechts()
@@ -82,13 +76,12 @@ class MeinSpiel:
if taste == 4 and self.spielery > 0: if taste == 4 and self.spielery > 0:
self.oben() self.oben()
sound.Schrittsound(sound) sound.Schrittsound(sound)
self.feldunterspieler = self.spielfeld[self.spielerx][self.spielery] if self.ebene0feld[self.spielerx][self.spielery]== 5:
if self.feldunterspieler== 6: self.ebene1feld[self.spielerx][self.spielery] = 0
self.spielerx,self.spielery = posalt self.spielerx,self.spielery = self.altspielerx,self.altspielery
self.feldunterspieler=feldunterspieleralt
verschiebung = self.hinergrundverschieben(xverschiebungaktuell,yverschiebungaktuell) verschiebung = self.hinergrundverschieben(xverschiebungaktuell,yverschiebungaktuell)
self.ebene1feld[self.altspielerx][self.altspielery] = 0
self.spielfeld[self.spielerx][self.spielery] = 0 self.ebene1feld[self.spielerx][self.spielery] = 1
return verschiebung return verschiebung
@@ -135,12 +128,6 @@ class monster:
def __init__(self): def __init__(self):
pass pass
def bewegen(self,xpos,ypos): def bewegen(self,xpos,ypos):
print(self.cooldowny)
print()
print(self.cooldownx)
print()
print()
print()
xrichtung = random.randint(1,50*(self.cooldownx)) xrichtung = random.randint(1,50*(self.cooldownx))
if xrichtung == 1 and xpos < 41: if xrichtung == 1 and xpos < 41:
xpos += 1 xpos += 1
+17 -10
View File
@@ -14,22 +14,26 @@ FPS = 60
SCHWARZ = ( 0, 0, 0) SCHWARZ = ( 0, 0, 0)
WEISS = ( 255, 255, 255) WEISS = ( 255, 255, 255)
Beigegelb = ( 226, 181, 97 ) Beigegelb = ( 226, 181, 97 )
pyGameBilder = [] pyGameBilderebene0 = []
pyGameBilderebene1 = []
xverschiebung = 0 xverschiebung = 0
yverschiebung = 0 yverschiebung = 0
verschiebung = [0,0] verschiebung = [0,0]
# Bilder aus meinSpiel werden für pygame vorbereitet # Bilder aus meinSpiel werden für pygame vorbereitet
meinSpiel = MeinSpiel(FelderX, FelderY) ebene0 = MeinSpiel(FelderX, FelderY)
for fname in meinSpiel.bilder: for fname in ebene0.ebene0bilder:
pyGameBilder.append(pygame.image.load(fname)) pyGameBilderebene0.append(pygame.image.load(fname))
ebene1 = MeinSpiel(FelderX, FelderY)
for fname in ebene1.ebene1bilder:
pyGameBilderebene1.append(pygame.image.load(fname))
#Anfangskonfiguration für das Spielfeld wird geladen #Anfangskonfiguration für das Spielfeld wird geladen
meinSpiel.anfangsKonfiguration() ebene0.anfangsKonfiguration()
# Definieren und Öffnen eines neuen Fensters # Definieren und Öffnen eines neuen Fensters
fenster = pygame.display.set_mode((Breite, Hoehe)) fenster = pygame.display.set_mode((Breite, Hoehe))
pygame.display.set_caption("Mein erstes Spiel") pygame.display.set_caption("jjajajajjajajjaaa")
clock = pygame.time.Clock() clock = pygame.time.Clock()
# Schleife Hauptprogramm # Schleife Hauptprogramm
@@ -39,19 +43,22 @@ while True:
# Überprüfen, ob Nutzer eine Aktion durchgeführt hat # Überprüfen, ob Nutzer eine Aktion durchgeführt hat
for event in pygame.event.get(): for event in pygame.event.get():
# Beenden bei [ESC] oder [X] # Beenden bei [ESC] oder [X]
if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE) or meinSpiel.game_over == True: if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE) or ebene0.game_over == True:
pygame.quit() pygame.quit()
if event.type==KEYDOWN: if event.type==KEYDOWN:
verschiebung = meinSpiel.bewegen(event.key-1073741902,xverschiebung,yverschiebung) verschiebung = ebene0.bewegen(event.key-1073741902,xverschiebung,yverschiebung)
# Spielfeld löschen # Spielfeld löschen
xverschiebung += verschiebung[0] xverschiebung += verschiebung[0]
yverschiebung += verschiebung[1] yverschiebung += verschiebung[1]
for x in range(FelderX): for x in range(FelderX):
for y in range(FelderY): for y in range(FelderY):
fenster.blit(pyGameBilder[meinSpiel.spielfeld[x][y]],((x+xverschiebung)*Pixel,(y+yverschiebung)*Pixel)) fenster.blit(pyGameBilderebene0[ebene0.ebene0feld[x][y]],((x+xverschiebung)*Pixel,(y+yverschiebung)*Pixel))
for x in range(FelderX):
for y in range(FelderY):
fenster.blit(pyGameBilderebene1[ebene1.ebene1feld[x][y]],((x+xverschiebung)*Pixel,(y+yverschiebung)*Pixel))
# Spielfeld/figuren zeichnen # Spielfeld/figuren zeichnen
meinSpiel.spawnSpieler() ebene0.spawnSpieler()
# Fenster aktualisieren # Fenster aktualisieren
pygame.display.flip() pygame.display.flip()
clock.tick(FPS) clock.tick(FPS)