06.10.
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -23,4 +23,6 @@ Ich habe das Spielfeld in Ebenen augeteilt. Eine für den Hintergrund und eine f
|
|||||||
Ich habe eine dritte Ebene für Effekte hinzugefügt.
|
Ich habe eine dritte Ebene für Effekte hinzugefügt.
|
||||||
Außerdem wollte ich mehrere Monster erstellen. Da gab es jedoch ein paar Bugs, von denen noch einer besteht.
|
Außerdem wollte ich mehrere Monster erstellen. Da gab es jedoch ein paar Bugs, von denen noch einer besteht.
|
||||||
|
|
||||||
|
#### 06.10.
|
||||||
|
Ich sitze gerade an dem Angriff der Monster und ein paar Bugs.
|
||||||
|
|
||||||
|
|||||||
+68
-25
@@ -11,15 +11,18 @@ class MeinSpiel:
|
|||||||
for i in range(6):
|
for i in range(6):
|
||||||
ebene0bilder.append("Bilder/"+hintergrundstil+str(i+1)+".xcf")
|
ebene0bilder.append("Bilder/"+hintergrundstil+str(i+1)+".xcf")
|
||||||
ebene0feld = []
|
ebene0feld = []
|
||||||
ebene1bilder = ["Bilder/leer.xcf","Bilder/angriff1.xcf"]
|
ebene1bilder = ["Bilder/leer.xcf","Bilder/angriff2.xcf","Bilder/angriff1.xcf"]
|
||||||
ebene1feld = []
|
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 = []
|
ebene2feld = []
|
||||||
game_over = False
|
game_over = False
|
||||||
anzahlMonster= 0
|
anzahlMonster= 0
|
||||||
monsterspawncooldown=0
|
monsterspawncooldown=0
|
||||||
monsterstruktur = []
|
monsterstruktur = []
|
||||||
betrachtetesmonster = 0
|
betrachtetesmonster = 0
|
||||||
|
cooldownangriff = 0
|
||||||
|
spielerleben = 10
|
||||||
|
angriffMonster = 420
|
||||||
|
|
||||||
def __init__(self, felderX, felderY):
|
def __init__(self, felderX, felderY):
|
||||||
for x in range(felderX):
|
for x in range(felderX):
|
||||||
@@ -40,39 +43,63 @@ class MeinSpiel:
|
|||||||
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.ebene2feld[self.spielerx][self.spielery] = 1
|
self.ebene2feld[self.spielerx][self.spielery] = 4
|
||||||
self.ebene1feld[4][4] = 1
|
|
||||||
|
|
||||||
def Monster(self):
|
def Monster(self):
|
||||||
if self.monsterspawncooldown == 0:
|
if self.monsterspawncooldown == 0:
|
||||||
self.anzahlMonster += 1
|
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.monsterspawncooldown = 600
|
||||||
self.betrachtetesmonster = 0
|
self.betrachtetesmonster = 0
|
||||||
while self.betrachtetesmonster < self.anzahlMonster:
|
while self.betrachtetesmonster < self.anzahlMonster:
|
||||||
self.monsterstruktur [self.betrachtetesmonster][2] = self.monsterstruktur [self.betrachtetesmonster][0]
|
self.monsterstruktur [self.betrachtetesmonster][2] = self.monsterstruktur [self.betrachtetesmonster][0]
|
||||||
self.monsterstruktur [self.betrachtetesmonster][3] = self.monsterstruktur [self.betrachtetesmonster][1]
|
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])
|
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:
|
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][1]][self.monsterstruktur [self.betrachtetesmonster][2]] = 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][0] = self.monsterstruktur [self.betrachtetesmonster][2]
|
||||||
self.monsterstruktur [self.betrachtetesmonster][1] = self.monsterstruktur [self.betrachtetesmonster][3]
|
self.monsterstruktur [self.betrachtetesmonster][1] = self.monsterstruktur [self.betrachtetesmonster][3]
|
||||||
else:
|
else:
|
||||||
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][2]][self.monsterstruktur [self.betrachtetesmonster][3]] = 0
|
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][2]][self.monsterstruktur [self.betrachtetesmonster][3]] = 0
|
||||||
print(self.betrachtetesmonster)
|
#print(self.betrachtetesmonster)
|
||||||
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][3]] = 2
|
self.ebene2feld[self.monsterstruktur [self.betrachtetesmonster][0]][self.monsterstruktur [self.betrachtetesmonster][1]] = self.monsterstruktur[self.betrachtetesmonster][4]
|
||||||
self.betrachtetesmonster +=1
|
self.betrachtetesmonster +=1
|
||||||
self.monsterspawncooldown -=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:
|
self.betrachtetesmonster +=1
|
||||||
if self.spielerx == self.monsterstruktur [betrachtetesMonster][0] and self.spielery == self.monsterstruktur [betrachtetesMonster][1]:
|
|
||||||
self.game_over = True
|
def Monstergetroffen(self):
|
||||||
betrachtetesMonster +=1
|
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):
|
def rechts(self):
|
||||||
self.spielerx += 1
|
self.spielerx += 1
|
||||||
@@ -88,24 +115,24 @@ class MeinSpiel:
|
|||||||
self.altspielerx = self.spielerx
|
self.altspielerx = self.spielerx
|
||||||
self.altspielery = self.spielery
|
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()
|
self.rechts()
|
||||||
sound.Schrittsound(sound)
|
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()
|
self.links()
|
||||||
sound.Schrittsound(sound)
|
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()
|
self.unten()
|
||||||
sound.Schrittsound(sound)
|
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()
|
self.oben()
|
||||||
sound.Schrittsound(sound)
|
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.ebene2feld[self.spielerx][self.spielery] = 0
|
||||||
self.spielerx,self.spielery = self.altspielerx,self.altspielery
|
self.spielerx,self.spielery = self.altspielerx,self.altspielery
|
||||||
verschiebung = self.hinergrundverschieben(xverschiebungaktuell,yverschiebungaktuell)
|
verschiebung = self.hinergrundverschieben(xverschiebungaktuell,yverschiebungaktuell)
|
||||||
self.ebene2feld[self.altspielerx][self.altspielery] = 0
|
self.ebene2feld[self.altspielerx][self.altspielery] = 0
|
||||||
self.ebene2feld[self.spielerx][self.spielery] = 1
|
self.ebene2feld[self.spielerx][self.spielery] = 4
|
||||||
return verschiebung
|
return verschiebung
|
||||||
|
|
||||||
|
|
||||||
@@ -123,6 +150,22 @@ class MeinSpiel:
|
|||||||
verschiebung=[xverschiebung,yverschiebung]
|
verschiebung=[xverschiebung,yverschiebung]
|
||||||
return verschiebung
|
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:
|
class sound:
|
||||||
@@ -154,10 +197,10 @@ class monster:
|
|||||||
pass
|
pass
|
||||||
def bewegen(self,posx,posy):
|
def bewegen(self,posx,posy):
|
||||||
xrichtung = random.randint(1,50*(self.cooldownx))
|
xrichtung = random.randint(1,50*(self.cooldownx))
|
||||||
if xrichtung == 1 and posx < 41:
|
if xrichtung == 1 and posx <= 42:
|
||||||
posx += 1
|
posx += 1
|
||||||
self.cooldownx = 100
|
self.cooldownx = 100
|
||||||
if xrichtung == 2 and posx > 0:
|
if xrichtung == 2 and posx >= 0:
|
||||||
posx -= 1
|
posx -= 1
|
||||||
self.cooldownx = 100
|
self.cooldownx = 100
|
||||||
|
|
||||||
@@ -166,10 +209,10 @@ class monster:
|
|||||||
|
|
||||||
|
|
||||||
yrichtung = random.randint(1,50*(self.cooldowny))
|
yrichtung = random.randint(1,50*(self.cooldowny))
|
||||||
if yrichtung == 1 and posy < 41:
|
if yrichtung == 1 and posy <= 42:
|
||||||
posy += 1
|
posy += 1
|
||||||
self.cooldowny = 100
|
self.cooldowny = 100
|
||||||
if yrichtung == 2 and posy > 0:
|
if yrichtung == 2 and posy >= 0:
|
||||||
posy -= 1
|
posy -= 1
|
||||||
self.cooldowny = 100
|
self.cooldowny = 100
|
||||||
|
|
||||||
|
|||||||
+15
-4
@@ -20,6 +20,9 @@ pyGameBilderebene2 = []
|
|||||||
xverschiebung = 0
|
xverschiebung = 0
|
||||||
yverschiebung = 0
|
yverschiebung = 0
|
||||||
verschiebung = [0,0]
|
verschiebung = [0,0]
|
||||||
|
gameover = pygame.image.load("Bilder/gameover.xcf")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Bilder aus meinSpiel werden für pygame vorbereitet
|
# Bilder aus meinSpiel werden für pygame vorbereitet
|
||||||
meinspiel = MeinSpiel(FelderX, FelderY)
|
meinspiel = MeinSpiel(FelderX, FelderY)
|
||||||
@@ -35,7 +38,7 @@ meinspiel.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("jjajajajjajajjaaa")
|
pygame.display.set_caption("Spiel Informatik Johannes Matzen Eb 2026")
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
|
|
||||||
# Schleife Hauptprogramm
|
# Schleife Hauptprogramm
|
||||||
@@ -51,7 +54,11 @@ while True:
|
|||||||
if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE):
|
if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE):
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
if event.type==KEYDOWN and meinspiel.game_over == False:
|
if event.type==KEYDOWN and meinspiel.game_over == False:
|
||||||
verschiebung = meinspiel.bewegen(event.key-1073741902,xverschiebung,yverschiebung)
|
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
|
# Spielfeld löschen
|
||||||
xverschiebung += verschiebung[0]
|
xverschiebung += verschiebung[0]
|
||||||
@@ -68,8 +75,12 @@ while True:
|
|||||||
# Spielfeld/figuren zeichnen
|
# Spielfeld/figuren zeichnen
|
||||||
if meinspiel.game_over == False:
|
if meinspiel.game_over == False:
|
||||||
meinspiel.Monster()
|
meinspiel.Monster()
|
||||||
meinspiel.Angriffe()
|
meinspiel.Monstergetroffen()
|
||||||
print(meinspiel.monsterstruktur)
|
meinspiel.angriffzuruecksetzen()
|
||||||
|
meinspiel.Monsterangriff()
|
||||||
|
else:
|
||||||
|
fenster.blit(gameover,(0,0))
|
||||||
|
print(meinspiel.spielerleben)
|
||||||
# Fenster aktualisieren
|
# Fenster aktualisieren
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
clock.tick(FPS)
|
clock.tick(FPS)
|
||||||
Reference in New Issue
Block a user