Kostüme und Hintergrund#

Jedes Token verfügt über ein oder mehrere Kostüme. Kostüme verfügen über mehrere Bilder, mit denen Animationen beschrieben werden können.

Die Beziehung zwischen der Klasse Token und der Klasse Costume kann folgendermaßen veranschaulicht werden:

classDiagram direction LR Token *-- Costume : contains Costume > class Token{ costumes : list[Costume] +add_costume() +switch_costume() +next_costume() } class Costume{ int orientation bool is_rotatable bool is_flipped bool is_scaled bool is_animated ... + add_image(path) + add_images(list_of_paths) + remove_last_image() }

Note

Wenn du in der api nach den Attributen und Methoden der Klasse Costume schaust, so findest du diese in der Klasse Appearance- Dies ist die Vaterklasse von Costume und Background, da sich der Hintergrund der Spielfläche und die Kostüme der Tokens viele Eigenschaften teilen.

Das erste Kostüm#

Mit der Funktion

self.add_costume("images/image.jpg")

kannst du ein neues Kostüm zu einem Token hinzufügen.

Wenn noch kein Kostüm hinzugefügt wurde, wird dies auch automatisch dein erstes Kostüm.

Weitere Bilder zu einem Kostüm hinzufügen#

Mit der Anweisung costume.add_image kannst du weitere Bilder zu einem Kostüm hinzufügen.

self.costume.add_image("images/image_2.jpg")

Alternativ kannst du direkt auch eine Liste von Bildern zu einem Kostüm hinzufügen:

self.costume.add_images(["images/image_1.jpg, images/image_2.jpg"])

Animationen#

2D-Animationen kannst du dir vorstellen wie ein Daumenkino. Dadurch, dass schnell hintereinander das Bild eines Akteurs/Token geändert wird, macht es den Anschein, als würde sich der Akteur bewegen.

First Token

Dazu musst du zunächst mehrere Bilder zu einem Kostüm hinzufügen (siehe oben).

Anschließend kannst du das Kostüm folgendermaßen animieren:

import miniworldmaker as mwm

board = mwm.Board(80,80)

robot =  mwm.Token()
robot.size = (80,80)
robot.add_costume("images/drive1.png")
robot.costume.add_image("images/drive2.png")
robot.costume.is_animated = True
robot.costume.loop = True
board.run()

Zwischen Kostümen wechseln#

Folgendermaßen wechselst du zwischen zwei Kostümen:

self.switch_costume()

Die Anweisung springt zum nächsten Kostüm. Du kannst als Parameter auch eine Zahl angeben, um zu einem bestimmten Kostüm zu springen.