Eigene Funktionen
In diesem Abschnitt lernst Du, eigene Befehle (Funktionen) zu erschaffen. Wenn die eigenen Programme immer größer und größer werden, hilft Dir das, das Programm so zu gestalten, dass Du es nach einer Weile selbst noch verstehst und gezielt weiterentwickeln kannst.Programm zum Ausprobieren
WIDTH = 800
HEIGHT = 600
TITLE = "Kollisionserkennung ändern"
meteorit = Actor("meteorit.png")
meteorit.x = 400
meteorit.y = 200
laser = Actor("laser_ohne_strahl.png")
laser.x=400
laser.y=300
def schuss():
    laser.image="laser_mit_strahl.png"
    if laser.colliderect(meteorit):
        meteorit.image="meteorit_explosion.png"
def on_key_down(key):
    if key==keys.RIGHT:
        laser.x=laser.x+10
    elif key==keys.LEFT:
        laser.x=laser.x-10
    else:
        schuss()
def draw():
    screen.blit("sterne.png",(0,0))
    laser.draw();
    meteorit.draw()
Eigentlich sollte sich das Programm genauso verhalten wie das im Abschnitt vorher. Was also soll der Vorteil sein?
 Der Vorteil ist, dass unter else: nur noch ein Befehl, 
nämlich schuss() eingerückt steht. Und woher stammt der 
Befehl schuss()? Wir hatten ja schon ganz zu Anfang gesagt, dass def 
so genannte Funktionen definiert, etwa draw() oder on_key_down(). 
Bislang hatten wir auf diese Weise nur bestimmte Funktionen definiert, 
deren Namen bereits festgelegt waren.
Mit
 def schuss(): 
 und den folgenden Zeilen haben wir uns nun eine Funktion 
schuss() konstruiert, die wir danach wie einen 
Python-Befehl verwenden können. Das Programm ist durch diese Änderung 
zwar länger geworden. Dafür ist die Funktion on_key_down() deutlich 
kürzer und übersichtlicher geworden und man sieht praktisch auf den 
ersten Blick, dass im else-Fall ein schuss ausgeführt werden soll. 
Aufgabe 1: Andere Funktionsnamen
 Man könnte irrtümlicherweise meinen, die Namen der Funktionen 
würden dem Computer auf magische Weise sagen, was er tun soll. Aber das 
stimmt nicht. Benenne die Funktion schuss() in bla(). Du musst 
natürlich auch die Funktion on_key_down() entsprechend anpassen. Teste 
das Programm dann nochmals. 
Aufgabe 2: Absinken bei jedem Tastendruck
Ändere das Programm so, dass sich der Meteorit bei jedem 
Tastendruck um 10 Pixel nach unten bewegt. Definiere hierfür eine 
eigene Funktion absinken() und rufe sie in on_key_down() auf.
