This commit is contained in:
alstergym
2026-10-06 12:12:19 +02:00
parent 57bf9df884
commit 6be7d132c4
5 changed files with 86 additions and 30 deletions
+69 -26
View File
@@ -11,15 +11,18 @@ class MeinSpiel:
for i in range(6):
ebene0bilder.append("Bilder/"+hintergrundstil+str(i+1)+".xcf")
ebene0feld = []
ebene1bilder = ["Bilder/leer.xcf","Bilder/angriff1.xcf"]
ebene1bilder = ["Bilder/leer.xcf","Bilder/angriff2.xcf","Bilder/angriff1.xcf"]
ebene1feld = []
ebene2bilder = ["Bilder/leer.xcf","Bilder/Spieler.xcf","Bilder/Monster.xcf"]
ebene2bilder = ["Bilder/leer.xcf","Bilder/Monster.xcf","Bilder/Monster.xcf","Bilder/Monster.xcf","Bilder/Spieler.xcf"]
ebene2feld = []
game_over = False
anzahlMonster= 0
monsterspawncooldown=0
monsterstruktur = []
betrachtetesmonster = 0
cooldownangriff = 0
spielerleben = 10
angriffMonster = 420
def __init__(self, felderX, felderY):
for x in range(felderX):
@@ -40,39 +43,63 @@ class MeinSpiel:
def anfangsKonfiguration(self):
self.spielerx = random.randint(5,9)
self.spielery = random.randint(5,9)
self.ebene2feld[self.spielerx][self.spielery] = 1
self.ebene1feld[4][4] = 1
self.ebene2feld[self.spielerx][self.spielery] = 4
def Monster(self):
if self.monsterspawncooldown == 0:
self.anzahlMonster += 1
self.monsterstruktur.append([random.randint(1,42),random.randint(1,42),random.randint(1,42),random.randint(1,42)])
#Monsterstruktur: [x,y,Leben,cooldown Schaden bekommen, cooldown angreifen]
self.monsterstruktur.append([random.randint(1,42),random.randint(1,42),random.randint(1,42),random.randint(1,42),3,0,0])
self.monsterspawncooldown = 600
self.betrachtetesmonster = 0
while self.betrachtetesmonster < self.anzahlMonster:
self.monsterstruktur [self.betrachtetesmonster][2] = self.monsterstruktur [self.betrachtetesmonster][0]
self.monsterstruktur [self.betrachtetesmonster][3] = self.monsterstruktur [self.betrachtetesmonster][1]
self.monsterstruktur [self.betrachtetesmonster][0],self.monsterstruktur [self.betrachtetesmonster][1] = monster.bewegen(monster,self.monsterstruktur [self.betrachtetesmonster][0],self.monsterstruktur [self.betrachtetesmonster][1])
if self.ebene0feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][1]] == 5:
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][1]][self.monsterstruktur [self.betrachtetesmonster][2]] = 0
if self.ebene0feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][1]] == 5 or self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][1]] > 0:
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][1]] = 0
self.monsterstruktur [self.betrachtetesmonster][0] = self.monsterstruktur [self.betrachtetesmonster][2]
self.monsterstruktur [self.betrachtetesmonster][1] = self.monsterstruktur [self.betrachtetesmonster][3]
else:
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][2]][self.monsterstruktur [self.betrachtetesmonster][3]] = 0
print(self.betrachtetesmonster)
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][3]] = 2
#print(self.betrachtetesmonster)
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][1]] = self.monsterstruktur[self.betrachtetesmonster][4]
self.betrachtetesmonster +=1
self.monsterspawncooldown -=1
def Monsterangriff(self):
self.betrachtetesmonster = 0
while self.betrachtetesmonster < self.anzahlMonster:
self.Monsterangriff = random.randint(0,420)
x,y = self.monsterstruktur [self.betrachtetesmonster] [0]-1, self.monsterstruktur [self.betrachtetesmonster] [1]-1
if self.Monsterangriff == 0:
for i in range(3):
for j in range(3):
self.ebene1feld[x+i] [y+j] = 2
self.monsterstruktur [self.betrachtetesmonster] [6] = 10
if self.monsterstruktur [self.betrachtetesmonster] [6]==0:
for i in range(3):
for j in range(3):
self.ebene1feld[x+i] [y+j] = 0
else:
self.monsterstruktur [self.betrachtetesmonster] [6] -= 1
def Angriffe(self):
betrachtetesMonster = 0
while betrachtetesMonster < self.anzahlMonster:
if self.spielerx == self.monsterstruktur [betrachtetesMonster][0] and self.spielery == self.monsterstruktur [betrachtetesMonster][1]:
self.game_over = True
betrachtetesMonster +=1
self.betrachtetesmonster +=1
def Monstergetroffen(self):
self.betrachtetesmonster = 0
while self.betrachtetesmonster < self.anzahlMonster:
if self.ebene1feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][1]] ==1 and self.monsterstruktur [self.betrachtetesmonster] [5] == 0:
self.monsterstruktur [self.betrachtetesmonster][4] -= 1
self.monsterstruktur [self.betrachtetesmonster] [5] = 42
if self.monsterstruktur [self.betrachtetesmonster] [5] > 0:
self.monsterstruktur [self.betrachtetesmonster] [5] -= 1
self.betrachtetesmonster +=1
def rechts(self):
self.spielerx += 1
@@ -88,24 +115,24 @@ class MeinSpiel:
self.altspielerx = self.spielerx
self.altspielery = self.spielery
if taste == 1 and self.spielerx < 41:
if (taste == pygame.K_RIGHT or taste == pygame.K_d) and self.spielerx < 41:
self.rechts()
sound.Schrittsound(sound)
if taste == 2 and self.spielerx > 0:
if (taste == pygame.K_LEFT or taste == pygame.K_a) and self.spielerx > 0:
self.links()
sound.Schrittsound(sound)
if taste == 3 and self.spielery < 41:
if (taste == pygame.K_DOWN or taste == pygame.K_s) and self.spielery < 41:
self.unten()
sound.Schrittsound(sound)
if taste == 4 and self.spielery > 0:
if (taste == pygame.K_UP or taste == pygame.K_w) and self.spielery > 0:
self.oben()
sound.Schrittsound(sound)
if self.ebene0feld[self.spielerx][self.spielery]== 5:
if self.ebene0feld[self.spielerx][self.spielery]== 5 or self.ebene2feld[self.spielerx][self.spielery] > 0:
self.ebene2feld[self.spielerx][self.spielery] = 0
self.spielerx,self.spielery = self.altspielerx,self.altspielery
verschiebung = self.hinergrundverschieben(xverschiebungaktuell,yverschiebungaktuell)
self.ebene2feld[self.altspielerx][self.altspielery] = 0
self.ebene2feld[self.spielerx][self.spielery] = 1
self.ebene2feld[self.spielerx][self.spielery] = 4
return verschiebung
@@ -123,8 +150,24 @@ class MeinSpiel:
verschiebung=[xverschiebung,yverschiebung]
return verschiebung
def angriff(self):
x,y = self.spielerx-1,self.spielery-1
for i in range(3):
for j in range(3):
self.ebene1feld[x+i] [y+j] = 1
self.cooldownangriff = 10
def angriffzuruecksetzen(self):
if self.cooldownangriff==0:
x,y = self.spielerx-1,self.spielery-1
for i in range(3):
for j in range(3):
self.ebene1feld[x+i] [y+j] = 0
else:
self.cooldownangriff -= 1
def debug(self):
print(self.monsterstruktur)
class sound:
hintergrundsong1 = pygame.mixer.Sound("Sounds/Ritter Der Kokosnuss - ending song.mp3")
hintergrundsong1.set_volume(0.8)
@@ -154,10 +197,10 @@ class monster:
pass
def bewegen(self,posx,posy):
xrichtung = random.randint(1,50*(self.cooldownx))
if xrichtung == 1 and posx < 41:
if xrichtung == 1 and posx <= 42:
posx += 1
self.cooldownx = 100
if xrichtung == 2 and posx > 0:
if xrichtung == 2 and posx >= 0:
posx -= 1
self.cooldownx = 100
@@ -166,10 +209,10 @@ class monster:
yrichtung = random.randint(1,50*(self.cooldowny))
if yrichtung == 1 and posy < 41:
if yrichtung == 1 and posy <= 42:
posy += 1
self.cooldowny = 100
if yrichtung == 2 and posy > 0:
if yrichtung == 2 and posy >= 0:
posy -= 1
self.cooldowny = 100