23.09. und 22.09.
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,11 +2,19 @@
|
|||||||
## Spiel Informatik 2026 Johannes Matzen Eb
|
## Spiel Informatik 2026 Johannes Matzen Eb
|
||||||
|
|
||||||
### Spielidee
|
### Spielidee
|
||||||
kommt noch...
|
Ich möchte ein Spiel machen, bei dem man einen Spieler steuert, der durch eine große Welt läuft. Man sieht davon aber immer nur einen Ausschnitt. Die Umgebung wird zufällig generiert und es gibt "Monster", die sich von alleine bewegen (sehr einfache KI). Das Ziel des Spiels wird es (wahrscheinlich) sein, entweder, alle Monster zu besiegen, oder, eine Aufgabe zu erfüllen (z.B. Diamanten sammeln).
|
||||||
|
|
||||||
### Protokoll
|
### Protokoll
|
||||||
#### 09.09.
|
#### 09.09.
|
||||||
Ich habe programmiert, dass man die Spielfigur in dem Raster bewegen kann und, dass sich das Raster dabei verschiebt. Letzteres funktioniert aber noch nicht so gut.
|
Ich habe programmiert, dass man die Spielfigur in dem Raster bewegen kann und, dass sich das Raster dabei verschiebt. Letzteres funktioniert aber noch nicht so gut.
|
||||||
|
#### 16.09.
|
||||||
|
Ich habe ein paar Bugs entfernt (z.B. beim Laden der Grafiken) und versucht, das Verschieben des Rasters zu verbessern.
|
||||||
|
|
||||||
|
#### 19.09.
|
||||||
|
Zu Hause habe ich es endlich geschafft, das Raster zu verschieben.
|
||||||
|
|
||||||
|
#### 22.09.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
+117
-16
@@ -1,24 +1,59 @@
|
|||||||
import copy
|
import copy
|
||||||
import pygame
|
import pygame
|
||||||
import random
|
import random
|
||||||
|
pygame.init()
|
||||||
|
pygame.mixer.init()
|
||||||
|
|
||||||
class MeinSpiel:
|
class MeinSpiel:
|
||||||
bilder = []
|
hintergrundstile = ["Sand","Gras"]
|
||||||
for i in range(20):
|
hintergrundstil = random.choice(hintergrundstile)
|
||||||
bilder.append("Bilder/"+str(i)+".jpg")
|
bilder = ["Bilder/Spieler.xcf"]
|
||||||
|
for i in range(6):
|
||||||
|
bilder.append("Bilder/"+hintergrundstil+str(i+1)+".xcf")
|
||||||
|
bilder.append("Bilder/Monster.xcf")
|
||||||
spielfeld = []
|
spielfeld = []
|
||||||
feldunterspieler=random.randint(0,5)
|
feldunterspieler=random.randint(1,5)
|
||||||
|
felduntermonster=random.randint(1,5)
|
||||||
|
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.spielfeld.append([])
|
||||||
for y in range(felderY):
|
for y in range(felderY):
|
||||||
self.spielfeld[x].append(random.randint(0,5))
|
self.spielfeld[x].append(random.randint(1,6))
|
||||||
|
|
||||||
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] = 6
|
self.spielfeld[self.spielerx][self.spielery] = 1
|
||||||
|
self.monsterx = random.randint(5,9)
|
||||||
|
self.monstery = random.randint(5,9)
|
||||||
|
self.spielfeld[self.monsterx][self.monstery] = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def spawnSpieler(self):
|
||||||
|
self.spielfeld[self.spielerx][self.spielery] = 0
|
||||||
|
self.spielfeld[self.monsterx][self.monstery] = self.felduntermonster
|
||||||
|
self.altmonsterx = self.monsterx
|
||||||
|
self.altmonstery = self.monstery
|
||||||
|
self.felduntermonsteralt = self.felduntermonster
|
||||||
|
self.monsterx,self.monstery = monster.bewegen(monster,self.monsterx,self.monstery)
|
||||||
|
self.felduntermonster = self.spielfeld[self.monsterx][self.monstery]
|
||||||
|
|
||||||
|
if self.felduntermonster != 6:
|
||||||
|
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.monstery = self.altmonstery
|
||||||
|
|
||||||
|
|
||||||
|
if self.spielerx == self.monsterx and self.spielery == self.monstery:
|
||||||
|
self.game_over = True
|
||||||
|
|
||||||
def rechts(self):
|
def rechts(self):
|
||||||
self.spielerx += 1
|
self.spielerx += 1
|
||||||
@@ -34,35 +69,101 @@ class MeinSpiel:
|
|||||||
self.spielfeld[self.spielerx][self.spielery] = self.feldunterspieler
|
self.spielfeld[self.spielerx][self.spielery] = self.feldunterspieler
|
||||||
posalt=[self.spielerx,self.spielery]
|
posalt=[self.spielerx,self.spielery]
|
||||||
feldunterspieleralt=self.feldunterspieler
|
feldunterspieleralt=self.feldunterspieler
|
||||||
if taste == 1:
|
|
||||||
|
if taste == 1 and self.spielerx < 41:
|
||||||
self.rechts()
|
self.rechts()
|
||||||
if taste == 2:
|
sound.Schrittsound(sound)
|
||||||
|
if taste == 2 and self.spielerx > 0:
|
||||||
self.links()
|
self.links()
|
||||||
if taste == 3:
|
sound.Schrittsound(sound)
|
||||||
|
if taste == 3 and self.spielery < 41:
|
||||||
self.unten()
|
self.unten()
|
||||||
if taste == 4:
|
sound.Schrittsound(sound)
|
||||||
|
if taste == 4 and self.spielery > 0:
|
||||||
self.oben()
|
self.oben()
|
||||||
|
sound.Schrittsound(sound)
|
||||||
self.feldunterspieler = self.spielfeld[self.spielerx][self.spielery]
|
self.feldunterspieler = self.spielfeld[self.spielerx][self.spielery]
|
||||||
if self.feldunterspieler== 5:
|
if self.feldunterspieler== 6:
|
||||||
self.spielerx,self.spielery = posalt
|
self.spielerx,self.spielery = posalt
|
||||||
self.feldunterspieler=feldunterspieleralt
|
self.feldunterspieler=feldunterspieleralt
|
||||||
verschiebung = self.hinergrundverschieben(xverschiebungaktuell,yverschiebungaktuell)
|
verschiebung = self.hinergrundverschieben(xverschiebungaktuell,yverschiebungaktuell)
|
||||||
|
|
||||||
self.spielfeld[self.spielerx][self.spielery] = 6
|
self.spielfeld[self.spielerx][self.spielery] = 0
|
||||||
return verschiebung
|
return verschiebung
|
||||||
|
|
||||||
|
|
||||||
def hinergrundverschieben(self,xverschiebungaktuell,yverschiebungaktuell):
|
def hinergrundverschieben(self,xverschiebungaktuell,yverschiebungaktuell):
|
||||||
xverschiebung=0
|
xverschiebung=0
|
||||||
yverschiebung=0
|
yverschiebung=0
|
||||||
if self.spielerx >= 11-xverschiebungaktuell:
|
if self.spielerx >= 11-xverschiebungaktuell and self.spielerx <= 38 and self.spielerx >= 3:
|
||||||
xverschiebung = -1
|
xverschiebung = -1
|
||||||
if self.spielerx <= 2-xverschiebungaktuell:
|
if self.spielerx <= 2-xverschiebungaktuell and self.spielerx <= 38 and self.spielerx >= 3:
|
||||||
xverschiebung = 1
|
xverschiebung = 1
|
||||||
if self.spielery >= 11-yverschiebungaktuell:
|
if self.spielery >= 11-yverschiebungaktuell and self.spielery <= 38 and self.spielery >= 3:
|
||||||
yverschiebung = -1
|
yverschiebung = -1
|
||||||
if self.spielery <= 2-yverschiebungaktuell:
|
if self.spielery <= 2-yverschiebungaktuell and self.spielery <= 38 and self.spielery >= 3:
|
||||||
yverschiebung = 1
|
yverschiebung = 1
|
||||||
verschiebung=[xverschiebung,yverschiebung]
|
verschiebung=[xverschiebung,yverschiebung]
|
||||||
return verschiebung
|
return verschiebung
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class sound:
|
||||||
|
hintergrundsong1 = pygame.mixer.Sound("Sounds/Ritter Der Kokosnuss - ending song.mp3")
|
||||||
|
hintergrundsong1.set_volume(0.8)
|
||||||
|
SchleimSchritt = pygame.mixer.Sound("Sounds/Schleim_Schritt.mp3")
|
||||||
|
Hintergrundkanal = pygame.mixer.Channel(0)
|
||||||
|
Kanal1 = pygame.mixer.Channel(1)
|
||||||
|
Kanal2 = pygame.mixer.Channel(2)
|
||||||
|
Kanal3 = pygame.mixer.Channel(3)
|
||||||
|
Kanal4 = pygame.mixer.Channel(4)
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def hintergrundmusik(self):
|
||||||
|
if not self.Hintergrundkanal.get_busy():
|
||||||
|
self.Hintergrundkanal.play(self.hintergrundsong1)
|
||||||
|
def Schrittsound(self):
|
||||||
|
self.Kanal1.play(self.SchleimSchritt)
|
||||||
|
|
||||||
|
|
||||||
|
class monster:
|
||||||
|
cooldownx = 1
|
||||||
|
cooldowny = 1
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
pass
|
||||||
|
def bewegen(self,xpos,ypos):
|
||||||
|
print(self.cooldowny)
|
||||||
|
print()
|
||||||
|
print(self.cooldownx)
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
xrichtung = random.randint(1,50*(self.cooldownx))
|
||||||
|
if xrichtung == 1 and xpos < 41:
|
||||||
|
xpos += 1
|
||||||
|
self.cooldownx = 100
|
||||||
|
if xrichtung == 2 and xpos > 0:
|
||||||
|
xpos -= 1
|
||||||
|
self.cooldownx = 100
|
||||||
|
|
||||||
|
if self.cooldownx != 1:
|
||||||
|
self.cooldownx -= 1
|
||||||
|
|
||||||
|
|
||||||
|
yrichtung = random.randint(1,50*(self.cooldowny))
|
||||||
|
if yrichtung == 1 and xpos < 41:
|
||||||
|
ypos += 1
|
||||||
|
self.cooldowny = 100
|
||||||
|
if yrichtung == 2 and ypos > 0:
|
||||||
|
ypos -= 1
|
||||||
|
self.cooldowny = 100
|
||||||
|
|
||||||
|
if self.cooldowny != 1:
|
||||||
|
self.cooldowny -= 1
|
||||||
|
|
||||||
|
|
||||||
|
return xpos,ypos
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -1,5 +1,6 @@
|
|||||||
# Importieren u. initialisieren der Pygame-Bibliothek
|
# Importieren u. initialisieren der Pygame-Bibliothek
|
||||||
from meinspiel import MeinSpiel
|
from meinspiel import MeinSpiel
|
||||||
|
from meinspiel import sound
|
||||||
import pygame
|
import pygame
|
||||||
from pygame.locals import *
|
from pygame.locals import *
|
||||||
pygame.init()
|
pygame.init()
|
||||||
@@ -12,6 +13,7 @@ FelderX, FelderY = 42, 42
|
|||||||
FPS = 60
|
FPS = 60
|
||||||
SCHWARZ = ( 0, 0, 0)
|
SCHWARZ = ( 0, 0, 0)
|
||||||
WEISS = ( 255, 255, 255)
|
WEISS = ( 255, 255, 255)
|
||||||
|
Beigegelb = ( 226, 181, 97 )
|
||||||
pyGameBilder = []
|
pyGameBilder = []
|
||||||
xverschiebung = 0
|
xverschiebung = 0
|
||||||
yverschiebung = 0
|
yverschiebung = 0
|
||||||
@@ -32,11 +34,12 @@ clock = pygame.time.Clock()
|
|||||||
|
|
||||||
# Schleife Hauptprogramm
|
# Schleife Hauptprogramm
|
||||||
while True:
|
while True:
|
||||||
|
sound.hintergrundmusik(sound)
|
||||||
verschiebung=[0,0]
|
verschiebung=[0,0]
|
||||||
# Ü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):
|
if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE) or meinSpiel.game_over == True:
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
if event.type==KEYDOWN:
|
if event.type==KEYDOWN:
|
||||||
verschiebung = meinSpiel.bewegen(event.key-1073741902,xverschiebung,yverschiebung)
|
verschiebung = meinSpiel.bewegen(event.key-1073741902,xverschiebung,yverschiebung)
|
||||||
@@ -48,7 +51,7 @@ while True:
|
|||||||
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(pyGameBilder[meinSpiel.spielfeld[x][y]],((x+xverschiebung)*Pixel,(y+yverschiebung)*Pixel))
|
||||||
# Spielfeld/figuren zeichnen
|
# Spielfeld/figuren zeichnen
|
||||||
|
meinSpiel.spawnSpieler()
|
||||||
# Fenster aktualisieren
|
# Fenster aktualisieren
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
clock.tick(FPS)
|
clock.tick(FPS)
|
||||||
Reference in New Issue
Block a user