30.9.
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user