GameGrid

GameGrid hat zwei Kind-Klassen:

class gamegridp.gamegrid.GameGrid(title, cell_size=32, columns=8, rows=8, margin=0, background_color=(255, 255, 255), cell_color=(0, 0, 0), img_path=None, img_action='upscale', speed=60, toolbar=False, console=False, actionbar=True)[Quellcode]
Das GameGrid

Das GameGrid ist ein Spielfeld, welches in einzelne Zellen unterteilt ist. Es kann unterschieden werden zwischen zwei Arten von GameGrids:

Die Zellengröße ist 1:
Es handelt sich um ein pixelgenaues Spiel bei dem die exakte Position der Akteure von Bedeutung ist.
Die Zellengröße ist größer als 1:
Es handelt sich um ein Spiel, das auf einzelnen Feldern basiert.

Für beide Arten von Spielen gibt es einige Subklassen, die Spezialfunktionen zur Verfügung stellen.

cell_size

int – Die Größe einer einzelnen Zelle in Pixeln.

toolbar

gamegridp.Toolbar – Die Toolbar auf der rechten Seite

actionbar

gamegridp.Actionbar – Die Actionbar unterhalb des Spielfeldes.

console

gamegridp.Console – Die Konsole unterhalb des Spielfeldes.

is_running

bool – Bestimmt, ob Act() in jedem Durchlauf der Mainloop ausgeführt wird.

speed

int – Die Geschwindigkeit mit der das Spiel läuft (bisher nur als Max. Geschwindigkeit definiert)

rows

int – Die Anzahl der Zeilen.

columns

int – Die Anzahl der Spalten.

act()[Quellcode]

Überschreibe diese Methode in deinen Kind-Klassen

actors

returns all actors in grid :return: a list of all actors

actors_are_colliding(actor1, actor2) → bool[Quellcode]

Überprüft, ob zwei Actors kollidieren

Parameter:
  • gamegrid.Actor (actor2) – Der erste Actor
  • gamegrid.Actor – Der zweite Actor
Rückgabe:

True, falls es eine Überschneidung gibt.

Rückgabetyp:

bool

add_actor(actor, location=None)[Quellcode]

Fügt einen Actor zum Grid hinzu

Parameter:
  • actor (gamegridp.Actor) – Der Actor, der hinzugefügt werden soll
  • location – Der Ort, an dem der Actor hinzugefügt werden soll.
cell_margin

returns the margin between cells

cell_rect(cell: tuple)[Quellcode]

Gibt das Rechteck zurück, dass eine Zelle umschließt.

cell_size

die Größe der einzelne Zellen des Grids.

cell_to_pixel(cell: tuple)[Quellcode]

Gibt die obere-linke Koordinate einer Zelle zurück.

collision(partner1, partner2)[Quellcode]

Überschreibe diese Methoden, wenn du Kollisionen handhaben möchtest.

columns

returns the margin between cells

draw()[Quellcode]

draws the entire window with grid, actionbar and toolbar :return:

frame

Returns the actual frame :return: the value of actual frame

get_all_actors_at_location(location: tuple, class_name: str = '') → list[Quellcode]

Gebe alle Akteure an den angegebenen Zellenkoordinaten zurück

Parameter:
  • location – Die Zellenkordinaten als Tupel (x,y)
  • class_name – Den Klassennamen, nachdem gefiltert werden soll
Rückgabe:

Eine Liste aller Akteure (mit der angegebenen Klasse) an der Position.

get_all_bounding_box_collisions(actor, class_name: str = None)[Quellcode]

Gibt alle Actors zurück, deren Bounding-Boxes mit dem angegebenen Akteur kollidieren.

Parameter:
  • actor – Der Actor für den Kollisionen überprüft werden sollen.
  • class_name (str) – Die Klasse nach der gefiltert werden soll. (z.B. Gebe nur Kollisionen mit Akteuren der Klasse „Wall“ zurück.)
Rückgabe:

Alle Akeure, die mit dem aktuellen Akteur kollidieren

Rückgabetyp:

list(gamegrid.Actor)

get_bounding_box_collision(actor, class_name: str = None)[Quellcode]

Gibt einen Actor zurück, dessen Bounding-Boxes mit dem angegebenen Akteur kollidieren.

Parameter:
  • Ein Actor vom angegebenen Klassennahmen, der mit dem angegebenen Actor kollidiert. (actor) –
  • Den Klassennamen nach dem gefiltert werden soll. (class_name) –
is_at_bottom_border(rect)[Quellcode]

Überprüfe, ob das Rechteck über den unteren Rand hinausragt

Parameter:rect
Rückgabe:True, falls Ja, ansonsten False
is_at_left_border(rect) → bool[Quellcode]

Überprüfe, ob das Rechteck über den linken Rand hinausragt

Parameter:rect
Rückgabe:True, falls Ja, ansonsten False
is_at_right_border(rect)[Quellcode]

Überprüfe, ob das Rechteck über den rechten Rand hinausragt

Parameter:rect
Rückgabe:True, falls Ja, ansonsten False
is_at_top_border(rect)[Quellcode]

Überprüfe, ob das Rechteck über den oberen Rand hinausragt

Parameter:rect
Rückgabe:True, falls Ja, ansonsten False
is_empty_cell(cell: tuple) → bool[Quellcode]

Überprüfe, ob eine Zelle leer ist.

Parameter:cell – Die Zellenkoordinaten als Tupel (x,y)
Rückgabe:True, falls Ja, ansonsten False
is_location_in_grid(location)[Quellcode]

Gibt an, ob eine Zellenkoordinate im Grid liegt

Parameter:location – Die Zellenkoordinate als Tupel (x,y)
Rückgabe:True falls Koordinate im Grid, ansonsten False
is_rectangle_in_grid(rect) → bool[Quellcode]

Überprüfe, ob das Rechteck komplett im Grid ist.

Parameter:rect – Ein Rechteck
Rückgabe:True, falls Ja, ansonsten False
listen(event: str = None, data=None)[Quellcode]

Überschreibe diese Methode in deiner Kind-Klasse

Parameter:
  • event – Das Event, welches getriggert wurde. Mögliche Events: * mousedown * key_pressed / key - Eine taste wird gedrückt (gehalten) * key_down - Eine Taste wird gerade heruntergedrückt * button_name Falls ein Button geklickt wurde.
  • data – Zusätzliche Infos, wie z.B. die gedrückten Tasten oder die Koordinaten der Maus.
play_music(music_path)[Quellcode]

Spielt eine Musik in Endlosschleife

Parameter:music_path – Der Pfad zur Musikdatei relativ zum aktuellen Verzeichnis.
play_sound(sound_path)[Quellcode]

Spielt einen Sound

Parameter:sound_path – Der Pfad zum Sound relativ zum aktuellen Verzeichnis.
remove_actor(actor=None, cell: tuple = None)[Quellcode]

Entfernt einen Akteur aus dem Grid

Parameter:
  • actor – Der zu entfernende Akteur
  • cell – Entfernt alle Akteure an einer Zelle (actor wird dann ignoriert)
Rückgabe:

remove_all_actors()[Quellcode]

Entfernt alle Akteure aus dem Grid.

repaint_area(rect: pygame.Rect)[Quellcode]

Zeichnet den gewählten Bereich neu

Parameter:rect – Ein Rechteck, welches neu gezeichnet werden soll.
reset()[Quellcode]

Entfernt alle Akteure aus dem Grid und setzt sie an ihre Ursprungspositionen.

rows

returns the margin between cells

run()[Quellcode]

Startet die Ausführung (equivalent zum Drücken des Run-Buttons). Wenn das Spiel läuft handeln die Akteure mit jedem Durchlauf der mainloop genau einmal.

set_image(img_path: str, img_action: str = 'upscale', size=None)[Quellcode]

Setzt das Hintergrundbild des Grids

Parameter:
  • img_path – Der Pfad zum Bild als relativer Dateipfad
  • img_action – Die Aktion, die mit dem Bild durchgeführt werden soll (scale, upscale, fill, crop
  • size – Die Größe auf die das Bild skaliert / zugeschnitten etc. werden soll
setup()[Quellcode]

Sollte in deiner Kind-Klasse überschrieben werden.

show()[Quellcode]

Startet das Programm.

stop()[Quellcode]

Stoppt die Ausführung (siehe auch run)