HomeTurtlegrafikGPanelRobotikGameGrid WebTigerPython
 Python - Online
actors

2. ACTORS

 

 

DU LERNST HIER...

 

wie du im Spielfenster Spielfiguren (Actors) erzeugst und ihnen ein Bild zuorndnest.


 

Alle Spielfiguren werden als Objekte einer Klasse, die von der Klasse Actor abgeleitet sind, aufgefasst. Jedem Actor ist ein Sprite-Bild zugeordnet. Ein Actor kann aber auch mehrere Sprites haben.
Die Definition einer Klasse in Python beginnt mit dem Schlüsselwort class. Der Klassennamen wird mit grossem Anfangsbuchstaben geschrieben. Wird eine Klasse abgeleitet, so muss der Name der Basisklasse in einer Klammer stehen. Abgeleitete Klassen erben alle Methoden der Basisklasse, man kann aber auch weitere Methoden hinzufügen. Eine Methode unterscheidet sich von einer Funktion nur in zwei Aspekten:
- sie ist innerhalb einer Klasse definiert
- der erste Parameter einer Methode ist immer self.

Eine Klasse besitzt eine spezielle Methode, den sogenannten Konstruktor. Die Konstruktoren in Python werden immer mit def __init__(self) definiert. Die Klassendefinition erfolgt immer vor dem Hauptblock.



 

MUSTERBEISPIELE

 

Beispiel 1: Du definierst eine Klasse Fish, die von der Klasse Actor abgeleitet ist und lässt zwei Objekte dieser Klasse im Spielfenster erscheinen.
Der Klasse Fish ist das Spritebild nemo.gif zugeordnet. Damit ein Fisch im Spielfenster erscheint, musst du im Hauptprogramm ein Objekt dieser Klasse erzeugen. Du nennst es nemo. Mit addActor(nemo, Location(1, 3)) wird nemo zum Spielfenster in der Zelle (1, 3) hinzugefügt (die Nummerierung der Zellen beginnt bei 0). Du kannst mehrere Objekte der Klasse Fish erzeugen und zum Spielfenster hinzufügen.

 

Programm:

# Gg2.py
from gamegrid import *

# ------------- class Fish -------------------------------
class Fish(Actor):
    def __init__(self):
        Actor.__init__(self, "sprites/nemo.gif")
 
# ---------------- main ----------------------------------
makeGameGrid(10, 10, 60, Color.red, "sprites/reef.gif")
nemo = Fish()
addActor(nemo, Location(1, 3))
wanda = Fish()
addActor(wanda, Location(6, 7))
show()
► In Zwischenablage kopieren

Du kannst auch mehrere Aktors der Klasse Fisch erzeugen, ohne diese einzeln zu benennen. Dann rufst du in der Funktion addActor() den Klassennamen Fisch() auf und gibt danach die gewünschte Position an.

Programm:

# Gg2a.py

from gamegrid import *

# ------------- class Fish -------------------------------
class Fish(Actor):
    def __init__(self):
        Actor.__init__(self, "sprites/nemo.gif")
 
# ---------------- main ----------------------------------
makeGameGrid(10, 10, 60, Color.red, "sprites/reef.gif")
addActor(Fish(), Location(1, 3))
addActor(Fish(), Location(6, 7))
show()
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Spiefiguren werden als Objekte einer Klasse, die von der Klasse Actor abgeleitet ist, erzeugt. Mit addActor(figur, Location()) werden Sie zum Spielfenster hinzugefügt.

Alle Actor-Spritebilder, die in unserem Tutorial verwendet werden, sind in der WebTigerPython-Distribution enthalten. Du siehst si in der Dokumentation unter dem Link Bildbibliothek).

 

 

ZUM SELBST LÖSEN

 

1.

Erzeuge ein Spielfenster mit 10 x10 Zellen der Grösse 60 Pixel und roten Gitterlinien, ohne Hintergrundbild und ohne Navigationsbalken. Nimm das Beispiel Gg2.py als Vorlage und schreibe eine Klasse Pacman(). Erzeuge dann drei Actors paki1, paki2 und paki3 an den Positionen (1, 1), (3, 5) und (7, 3).
 

2.

Erzeuge 10 Pacman-Actors, die im Spielfenster in der Diagoname angeordnet sind. Verwende eine for-Schleife.