Instructions
67
mainloop = True Damit sind die Grundlagen geschaffen, und das eigentliche Spiel kann beginnen.
print "Beliebige Taste drücken, um zu würfeln, [Esc] beendet das Spiel"
Diese Zeile erklärt dem Benutzer kurz, was zu tun ist. Bei jedem Druck auf eine beliebige Taste der Tastatur
wird neu gewürfelt.
print schreibt immer in das Python-Shell-Fenster, nicht in das neue grafische Fenster.
while mainloop: Jetzt beginnt die Hauptschleife des Spiels. In vielen Spielen wird eine Endlosschleife
verwendet, die sich immer wiederholt und ständig irgendwelche Benutzeraktivitäten abfragt. Irgendwo in der
Schleife muss eine Abbruchbedingung definiert sein, die dafür sorgt, dass das Spiel beendet werden kann.
Dafür wird hier die Variable
mainloop verwendet, die nur die beiden booleschen Werte True und False
(Wahr und Falsch, Ein und Aus) annimmt. Sie steht am Anfang auf
True und wird bei jedem Schleifen-
durchlauf abgefragt. Hat sie während der Schleife den Wert
False angenommen, wird die Schleife vor dem
nächsten Durchlauf beendet.
for event in pygame.event.get(): Diese Zeile liest die letzte Benutzeraktivität und speichert sie als
event. Im Spiel gibt es nur zwei Arten spielrelevanter Benutzeraktivitäten: Der Benutzer drückt eine Taste
und würfelt damit, oder der Benutzer möchte das Spiel beenden.
if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE):
mainloop = False
Es gibt zwei Möglichkeiten, das Spiel zu beenden: Man kann auf das x-Symbol in der oberen rechten
Fensterecke klicken oder die Taste
[Esc] drücken. Wenn man auf das x-Symbol klickt, ist der vom Betriebs-
system gelieferte
event.type == QUIT. Wenn man eine Taste drückt und wieder loslässt, ist der event.type
== KEYUP
. Zusätzlich wird in diesem Fall die gedrückte Taste in event.key gespeichert.
Die beschriebene
if-Abfrage prüft, ob der Benutzer das Fenster schließen will oder (or) eine Taste gedrückt
und losgelassen hat und (
and) dies die Taste mit der internen Bezeichnung K_ESCAPE ist. Ist das der Fall,
wird die Variable
mainloop auf False gesetzt, was die Hauptschleife des Spiels vor dem nächsten Durchlauf
beendet.
if event.type == KEYDOWN: Die zweite Art von Benutzeraktivität, die während des Spiels immer wieder und
nicht nur einmal vorkommt, ist, dass der Benutzer eine Taste drückt. Dabei spielt es keine Rolle, welche
außer der
[Esc]-Taste das ist. Sowie eine Taste gedrückt wurde (KEYDOWN), wird ein wichtiger Programmteil
in Gang gesetzt, der das Würfelergebnis erzeugt und auch darstellt.
FELD.fill(BLAU) Als Erstes wird das als FELD bezeichnete Surface-Objekt, das eigentliche Programm-
fenster, mit der am Anfang als
BLAU definierten Farbe gefüllt, um das vorherige Würfelergebnis zu über-
malen.
ZAHL = random.randrange (1, 7)