06.10.26
This commit is contained in:
@@ -26,5 +26,9 @@ Versucht den Bug mit dem Ball und dem unteren Spielfeldrand zu lösen
|
||||
Ball prallt venünfig an den Wänden ab und wenn man den auffrisst spawnt er in der Mitte neu. Außerdem habe ich eine Geschwindigkeitsänderung mit der Taste O eingebaut, die den Ball schneller bewegen lässt.
|
||||
|
||||
|
||||
## 06.10.26
|
||||
Heute Doppelunterricht oder Vertretungsstunde bei Frau Wilmsen. Funktion Bewegeball neu geschrieben und überarbeitet. Muss nurnoch Flüchtigkeitsfehler und Sachen die ich nicht bedacht habe lösen.
|
||||
|
||||
|
||||
# Quellen
|
||||
Karten von itch.io -> nächste stunde sind hier genauere Quellen
|
||||
+56
-2
@@ -10,7 +10,7 @@ class MeinSpiel:
|
||||
richtung = 0
|
||||
richtung_y = 0
|
||||
alter_hintergrund = 0
|
||||
geschwindigkeit = 10
|
||||
geschwindigkeit = 15
|
||||
punkte1 = 0 # Punkte des Spieler 1
|
||||
punkte2 = 0 # Punkte des Spieler 2
|
||||
def __init__(self, felderX, felderY):
|
||||
@@ -180,13 +180,67 @@ class MeinSpiel:
|
||||
|
||||
if stoppe_suche: break
|
||||
|
||||
|
||||
return spieler_x, spieler_y
|
||||
except UnboundLocalError as e:
|
||||
print(e)
|
||||
self.starte_spiel()
|
||||
|
||||
|
||||
def bewegeball2(self):
|
||||
if self.richtung == 0: return # Wenn Spiel nicht aktiv, dann self.richtung = 0; Also bewegt sich der Ball nicht
|
||||
kontrollfeld = copy.deepcopy(self.spielfeld)
|
||||
stoppe_suche = False
|
||||
for x in range(len(self.spielfeld)):
|
||||
for y in range(len(self.spielfeld[x])):
|
||||
if self.spielfeld[x][y] == 2: # 2 = Ball
|
||||
stoppe_suche = True # um den Ball nicht ein zweites mal zu finden
|
||||
# setze Ballcoordinaten auf das nächste Feld
|
||||
BallX = x+1 if self.richtung == 2 else x-1
|
||||
BallY = y+1 if self.richtung_y == 2 else y-1
|
||||
print(BallX)
|
||||
print(BallY)
|
||||
|
||||
# gucken ob an der neuen Position ein Spieler ist
|
||||
if self.spielfeld[BallX][BallY] == 1:
|
||||
# Richtung des Balles ändern und danach BallX und BallY neu setzen
|
||||
self.richtung = 1 if self.richtung == 2 else 1
|
||||
self.richtung_y = 1 if self.richtung_y == 2 else 1
|
||||
|
||||
BallX = x+1 if self.richtung == 2 else x-1
|
||||
BallY = y+1 if self.richtung_y == 2 else y-1
|
||||
|
||||
# gucken ob Ball am Rand (x-position) ist; Für Punktesystem
|
||||
if BallX == -1:
|
||||
self.punkte2 += 1
|
||||
self.starte_spiel()
|
||||
|
||||
elif BallX == 15: # 15, weil mein Spiel 15 Felder (standart 14) hat und von 0 gezählt wird -> max anzahl 14; 15 würde heißen, ball aus dem Spielfeld
|
||||
self.punkte1 += 1
|
||||
self.starte_spiel()
|
||||
|
||||
# gucken ob Ball am Rand (y-position) ist; Richtung ändern
|
||||
if BallY == -1:
|
||||
self.richtung_y = 1 if self.richtung_y == 2 else 2
|
||||
BallX = y
|
||||
|
||||
elif BallY == 15: # in if abfrage drüber inkludiert
|
||||
self.richtung_y = 1 if self.richtung_y == 2 else 2
|
||||
BallY = y
|
||||
|
||||
kontrollfeld[x][y] = 0
|
||||
kontrollfeld[BallX][BallY] = 2
|
||||
if stoppe_suche: break
|
||||
if stoppe_suche: break
|
||||
|
||||
self.spielfeld = kontrollfeld
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def bewegeSpieler(self, richtung, spieler: Literal["spieler1", "spieler2"]):
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ while True:
|
||||
fenster.blit(pyGameBilder[meinSpiel.spielfeld[x][y]],(x*Pixel,y*Pixel))
|
||||
|
||||
# Spielfeld/figuren zeichnen
|
||||
meinSpiel.bewegeball() if counter % geschwindigkeit == 0 else None
|
||||
meinSpiel.bewegeball2() if counter % geschwindigkeit == 0 else None
|
||||
font = pygame.font.Font(None, 64)
|
||||
text = font.render(f"{meinSpiel.punkte1}| {meinSpiel.punkte2}", False, WEISS)
|
||||
textpos = text.get_rect(centerx=fenster.get_width() / 2, y=10)
|
||||
|
||||
Reference in New Issue
Block a user