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. 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 ## 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) [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): def anfangsKonfiguration(self):
self.spielfeld[0][13]=0 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): # for i in range(3):
# x = random.randint(0, len(self.spielfeld) - 1) # x = random.randint(0, len(self.spielfeld) - 1)
# y = 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): def tasteGedrueckt(self, taste):
kontrollfeld = copy.deepcopy(self.spielfeld) kontrollfeld = copy.deepcopy(self.spielfeld)
max_x = len(self.spielfeld)
max_y = len(self.spielfeld[0])
if pygame.K_p == taste : if pygame.K_p == taste :
print("spawn") print("spawn")
@@ -70,6 +104,13 @@ class MeinSpiel:
self.spielfeld = kontrollfeld self.spielfeld = kontrollfeld
#def anfangsKonfiguration(self): #def anfangsKonfiguration(self):
# self.spielfeld[1][13] = 0 # self.spielfeld[1][13] = 0
# for i in range(3): # for i in range(3):
+9
View File
@@ -1,4 +1,5 @@
# Importieren u. initialisieren der Pygame-Bibliothek # Importieren u. initialisieren der Pygame-Bibliothek
import sys
from meinspiel import MeinSpiel from meinspiel import MeinSpiel
import pygame import pygame
from pygame.locals import * from pygame.locals import *
@@ -27,8 +28,11 @@ fenster = pygame.display.set_mode((Breite, Hoehe))
pygame.display.set_caption("Mein erstes Spiel") pygame.display.set_caption("Mein erstes Spiel")
clock = pygame.time.Clock() clock = pygame.time.Clock()
frame_zaehler = 0
# Schleife Hauptprogramm # Schleife Hauptprogramm
while True: while True:
frame_zaehler += 1
# Ü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]
@@ -43,6 +47,11 @@ while True:
for y in range(FelderY): for y in range(FelderY):
fenster.blit(pyGameBilder[meinSpiel.spielfeld[x][y]],(x*Pixel,y*Pixel)) 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 # Spielfeld/figuren zeichnen
# Fenster aktualisieren # Fenster aktualisieren