This commit is contained in:
alstergym
2026-09-30 10:59:45 +02:00
parent 652f99c5b4
commit 4c67b35487
3 changed files with 56 additions and 2 deletions
+4
View File
@@ -41,6 +41,10 @@ Beim Bewegen aus dem Spielfeld heraus in die Richtungen Links und Oben erscheint
Code um einen Stein am oberen Spielfeldrand erscheinen zu lassen funktioniert noch nicht.
### 30.9.2026
Beeren spawnen jetzt am oberen Spielfeldrand und sollten runterfallen, aber das Feld füllt sich leider komplett mit Beeren. Trotzdem kann man die Beeren einsammeln und Idee zum Punkte zählen habe ich auch.
## Bildquellen
[Grass Image by macrovector on Freepik](https://www.freepik.com/free-vector/seamless-green-grass-pattern_13187581.htm#query=grass%20texture&position=0&from_view=keyword&track=ais&uuid=c689b011-652b-4ad1-a90a-bf3c50762622)
+41
View File
@@ -16,6 +16,38 @@ class MeinSpiel:
def anfangsKonfiguration(self):
self.spielfeld[0][13]=0
def erstelle_neues_objekt(self):
# zufällige x Koordinate am oberen Spielfeldrand
zufall_x = random.randint(0, len(self.spielfeld)- 1)
#nur wenn das Feld frei ist spawnen
if self.spielfeld[zufall_x][0] == 2:
self.spielfeld[zufall_x][0] = 3
def objekt_fallen_lassen(self):
kontrollfeld = copy.deepcopy(self.spielfeld)
max_x = len(self.spielfeld)
max_y = len(self.spielfeld[0])
#von unten nach oben durch das Feld= Objekte rutschen nicht im selben Durchlauf nach unten
for x in range(max_x):
for y in range(max_y - 1, -1, -1):
if self.spielfeld[x][y] == 2:#Objedkt gefunden
#Check 1: wird der Boden erreicht?
if y == max_y - 1:
kontrollfeld[x][y] = 2 # Objekt löschen
#Check 2: wird Figur getroffen
elif self.spielfeld[x][y +1] == 0:
kontrollfeld[x][y] = 2 #Objekt verschwindet
# self.punkte += 1 # Punkt kommt dazu
# print(self.punkte)
#fällt ganz normal
elif self.spielfeld[x][y + 1] == 2:
kontrollfeld[x][y + 1] = 3
kontrollfeld[x][y] = 2
self.spielfeld = kontrollfeld
# for i in range(3):
# x = random.randint(0, len(self.spielfeld) - 1)
# y = random.randint(0, len(self.spielfeld) - 1)
@@ -28,6 +60,8 @@ class MeinSpiel:
def tasteGedrueckt(self, taste):
kontrollfeld = copy.deepcopy(self.spielfeld)
max_x = len(self.spielfeld)
max_y = len(self.spielfeld[0])
if pygame.K_p == taste :
print("spawn")
@@ -70,6 +104,13 @@ class MeinSpiel:
self.spielfeld = kontrollfeld
#def anfangsKonfiguration(self):
# self.spielfeld[1][13] = 0
# for i in range(3):
+9
View File
@@ -1,4 +1,5 @@
# Importieren u. initialisieren der Pygame-Bibliothek
import sys
from meinspiel import MeinSpiel
import pygame
from pygame.locals import *
@@ -27,8 +28,11 @@ fenster = pygame.display.set_mode((Breite, Hoehe))
pygame.display.set_caption("Mein erstes Spiel")
clock = pygame.time.Clock()
frame_zaehler = 0
# Schleife Hauptprogramm
while True:
frame_zaehler += 1
# Überprüfen, ob Nutzer eine Aktion durchgeführt hat
for event in pygame.event.get():
# Beenden bei [ESC] oder [X]
@@ -43,6 +47,11 @@ while True:
for y in range(FelderY):
fenster.blit(pyGameBilder[meinSpiel.spielfeld[x][y]],(x*Pixel,y*Pixel))
#Spawn und automatische Bewegung
if frame_zaehler % 50 == 0:
meinSpiel.erstelle_neues_objekt()
meinSpiel.objekt_fallen_lassen()
# Spielfeld/figuren zeichnen
# Fenster aktualisieren