i

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.

Ein kleines bisschen komplizierter ist die folgende Funktion:
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.

Suche

v
7.4.4.1
www.inf-schule.de/oop/spiele-python/ereignisse/reaktion-spieler
www.inf-schule.de/7.4.4.1
www.inf-schule.de/@/page/4VWrW7e699Tqblds

Rückmeldung geben