Reaktion auf den Spieler
In diesem Abschnitt lernst Du, wie das Programm auf Tastendrücke des Benutzers reagieren kann. Nur, wenn das Programm auf den Benutzer reagieren kann, unterscheidet sich ein Spiel von einem Film, der einfach abläuft.Programm zum Ausprobieren
Gib das folgende Programm ein und teste es, indem Du es startest dann irgendeine Taste der Tastatur drückst.
WIDTH = 800
HEIGHT = 600
TITLE = "Reaktion auf den Benutzer"
raumschiff = Actor("raumschiff_gruen.png")
raumschiff.x=100
raumschiff.y=200
def draw():
screen.blit("sterne",(0,0))
raumschiff.draw()
def on_key_down():
raumschiff.x = 700
raumschiff.y = 200
raumschiff.angle=90
def on_mouse_down(pos):
raumschiff.x = pos[0]
raumschiff.y = pos[1]
Erklärung
Neben der uns schon bekannten Funktion draw()
def draw():
screen.blit("sterne.png",(0,0))
raumschiff.draw()
die festlegt, was beim Zeichnen passieren soll, gibt es nun noch eine
weitere Funktion, on_key_down()
def on_key_down():
raumschiff.x = 700
raumschiff.y = 200
raumschiff.angle = 90
Diese Funktion legt – wie der Name on_key_down
schon
sagt – fest, was passieren soll, wenn man eine Taste drückt: In diesem
Fall ändern sich die sich gerade die Koordinaten und die Ausrichtung (der
Winkel) des Raumschiffs.
def on_mouse_down(pos):
raumschiff.x = pos[0]
raumschiff.y = pos[1]
Hier wird nicht nur geprüft, ob die Maus gedrückt wurde, sondern auch,
an welcher Position der Mauszeiger beim drücken stand.
Die Mausposition steht als Argument in Klammern: pos
. Eine
Position auf dem Bildschirm muss natürlich mit einer x- und einer
y-Koordinate beschrieben werden, also mit zwei Zahlen.
Die x-Koordinate der Mausposition wird dabei als pos[0]
,
die y-Koordinate als pos[1]
bezeichnet.
Aufgabe 1: Bei Tastendruck – Ecke
Schreibe ein Programm, bei dem das Raumschiff bei einem Tastendruck in die linke untere Ecke springt und sich in etwa Richtung der Mitte des Bildschirms ausrichtet.