Projekt Snake
Der Schlangenkopf
Als nächstes gehen wir den Schlangenkopf an.
Der Einfachheit halber, werden wir als Kopf nur ein Quadrat mit einer Kantenlänge von 10 Pixeln definieren. Der Hintergrund ist schwarz, also nehmen wir das erste Quadrat in rot auf.
In pygame
werden die Zahlen mittels RGB
-Werten angegeben.
Wer es noch nicht kennt, das ‚R’ steht für red, das ‚G’
für green und das
‚B’ für blue. Angegeben werden jeweils Werte zwischen 0 und 255.
‚0’ bedeutet
dabei, nichts von der Farbe, ‚255’ das volle Programm der Farbe.
Die gängigsten Farben habe ich nachfolgend schon aufgenommen, obwohl wie aktuell
nur "ROT"
verwenden:
...
# Spielsteuerung
spielen = True
# Farben RGB (Red, Green, Blue), jeweils 0 - 255
ROT = (255,0,0)
GRUEN = (0,255,0)
BLAU = (0,0,255)
WEISS = (255, 255, 255)
SCHWARZ = (0, 0, 0)
...
Die Erweiterung in der Schleife sieht wie folgt aus:
...
def spielschleife_aufrufen():
print('in spielschleife_aufrufen')
global spielen
while spielen:
for event in pygame.event.get():
# Ausgeben aller Aktivitaeten, die innerhalb des Fensters stattfinden
print(event)
# wenn das x im Fenster gedrueckt wird, soll das Fenster zugehen
if event.type == pygame.QUIT:
spielen = False
# den Kopf der Schlange symbolisiert ein Quadrat
pygame.draw.rect(fenster,ROT,[400,200,10,10])
pygame.display.update()
...
In diesem Anschnitt sind nur die Zeilen 13 bis 15 neu eingefügt.
In Zeile 14 ergeht der Befehl an pygame
, ein Rechteck zu
zeichnen.
Mitzugeben sind der Name des Fensters (fenster
), die Farbe
(ROT
) und die Positionsangaben.
Die 400
steht dabei für den Wert auf der x-Achse, beginnend bei 0
am linken Rand. Da die Breite des Fensters mit 800 Pixeln festgelegt ist, ist 400
genau die Hälfte.
Die 200
steht analog damit für den Wert auf der y-Achse. Diese
beginnt am oberen Rand mit 0. Unsere Höhe ist 400, also auch hier die
Hälfte.
Die erste 10
steht für 10 Pixel Kantenlänge der x-Achse, die
zweite 10
für 10 Pixel auf der y-Achse.
Streng genommen ist das Quadrat damit nicht genau auf der Hälfte des Fensters positioniert. Nur der obere linke Punkt ist genau auf der Hälfte. Damit auch das Quadrat genau in der Mitte ist, müssten wir jeweils die Hälfte der Seite von der x- und der y-Position abziehen.
Ich weiß, niemand mag Klugscheißer...
Ganz wichtig ist der Eintrag in Zeile 49. Ohne den Befehl
pygame.display.update()
wird keine der gemachten Änderungen im
Fenster angezeigt! Was sehen wir bei der Ausführung des Programms?
Ein rotes Rechteck auf schwarzem Grund. Cool.
Inhaltsverzeichnis:
1. Vorwort2. Das Projekt
3. Vorarbeiten
4. Projekt Snake
4.1. Der Funktionsumfang
4.2. Die Planung der Umsetzung
4.3. Das Coden
4.3.1. Das Grundgerüst
4.3.2. Das Fenster
4.3.3. Der Schlangenkopf
4.3.4. Die Bewegung der Schlange
4.3.5. Kleine Verbesserungen
4.3.6. Das Futter platzieren
4.3.7. Die Schlange wächst
4.3.8. Den Spielstand ausgeben
4.3.9. Die Wiederholung
4.3.10. Der finale Stand
5. Abschluss