From c54a08ac3d5afad242f8260ff7082ef7dc0edfd0 Mon Sep 17 00:00:00 2001 From: alstergym Date: Tue, 6 Oct 2026 12:11:21 +0200 Subject: [PATCH] 06.10.26 --- README.md | 4 ++++ meinspiel.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++-- starten2.py | 2 +- 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 56a6cc6..b481406 100644 --- a/README.md +++ b/README.md @@ -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 \ No newline at end of file diff --git a/meinspiel.py b/meinspiel.py index f9b494d..5b54e11 100644 --- a/meinspiel.py +++ b/meinspiel.py @@ -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,11 +180,65 @@ 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 + + + + + + diff --git a/starten2.py b/starten2.py index 0418b86..17ebee5 100644 --- a/starten2.py +++ b/starten2.py @@ -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)