Akteur > Formen#
Form#
Basisklasse für Formen
- class miniworlds.actors.shapes.shapes.Shape(position=(0, 0), *args, **kwargs)[Quellcode]#
Shape ist die übergeordnete Klasse für verschiedene geometrische Objekte, die erstellt werden können.
Jedes geometrische Objekt hat die folgenden Eigenschaften:
Rand: Die Randstärke des Objekts.
is_filled: Wahr/Falsch, ob das Objekt gefüllt werden soll.
fill_color: Die Füllfarbe des Objekts
border_color: Die Randfarbe des Objekts.
- get_costume_class()[Quellcode]#
- Rückgabetyp:
ShapeCostume
- new_costume()[Quellcode]#
- Rückgabetyp:
ShapeCostume
Punkt#
- class miniworlds.actors.shapes.shapes.Point(position)[Quellcode]#
Ein Punkt ist ein Kreis mit Radius 1
- __init__(position)[Quellcode]#
Initialisiere einen Punkt an der angegebenen Position
Kreis#
- class miniworlds.actors.shapes.shapes.Circle(position=(0, 0), radius=10, *args, **kwargs)[Quellcode]#
Eine kreisförmige Form, definiert durch Position und Radius
- Parameter:
position – Die Position als 2-Tupel. Der Kreis wird mit seinem Mittelpunkt an der Position erstellt
radius – Der Radius des Kreises
Beispiele
Erstelle einen Kreis an der Position (200,100) mit Radius 20:
Circle((200, 100), 20)
Erstelle einen Kreis in der oberen linken Position
miniworlds.Circle.from_topleft((100,100),50)
- classmethod from_center(position, radius, **kwargs)[Quellcode]#
Erstellt einen Kreis mit dem Mittelpunkt an der Position
- classmethod from_topleft(position, radius, **kwargs)[Quellcode]#
Erstellt einen Kreis mit der oberen linken Ecke an der Position
- get_costume_class()[Quellcode]#
- Rückgabetyp:
type
[costume_mod.Costume]
- new_costume()[Quellcode]#
- property radius#
Der Radius des Kreises. Wenn Sie die Kreisgröße ändern (z. B. mit self.size = (x, y)), wird der Radiuswert ebenfalls geändert.
Ellipse#
- class miniworlds.actors.shapes.shapes.Ellipse(position=(0, 0), width=10, height=10, *args, **kwargs)[Quellcode]#
Eine elliptische Form.
- Parameter:
position – Die Position als 2-Tupel. Die Ellipse wird an der oberen linken Position erstellt
width – Die Breite der Ellipse
height – Die Höhe der Ellipse
Beispiele
Erstellen Sie eine Ellipse an der oberen linken Position (200,100) mit einer Breite von 20 und einer Höhe von 30
Ellipse((200, 100), 20, 30)
Erstellen Sie eine Ellipse an der Position (200,100) mit einer Breite von 10 und einer Höhe von 10
miniworlds.Ellipse.from_center((100,100),10, 10)
(Alternative) Erstellen Sie eine Ellipse an der Position (200,100) mit einer Breite von 10 und einer Höhe von 10
e = miniworlds.Ellipse((100,100),10, 10) e.center = e.position
- check_arguments(position, width, height)[Quellcode]#
- classmethod from_center(position, width, height, **kwargs)[Quellcode]#
Erstellt eine Ellipse mit dem Mittelpunkt an der Position
- classmethod from_topleft(position, width, height, **kwargs)[Quellcode]#
Erstellt eine Ellipse mit der oberen linken Ecke an der Position
- get_costume_class()[Quellcode]#
- Rückgabetyp:
type
[costume_mod.Costume]
- new_costume()[Quellcode]#
Linie#
- class miniworlds.actors.shapes.shapes.Line(start_position, end_position, *args, **kwargs)[Quellcode]#
Eine Linienform, definiert durch start_position und end_position.
- Parameter:
start_position – Die start_position als 2-Tupel.
end_position – Die end_position als 2-Tupel.
Beispiele
Erstelle eine Linie von (200, 100) bis (400, 100)
Line((200, 100), (400,100))
Erstelle eine Linie von (200, 100) bis (400, 100)
l = Line((200, 100), (400,100)) l.border = 2
- property border#
-> Grenze sehen
- property direction#
Die Richtungen werden genau wie in der Programmiersprache Scratch behandelt, siehe:
Scratch Wiki <https://en.scratch-wiki.info/wiki/Direction_(value)>
_Die Standardrichtung ist
0°
. Alle Akteure schauen"nach oben"
Werte für Richtung
0°
oder"up"
: oben90°
oder"right"
: Nach rechts bewegen-90°
oder"left"
: Nach links bewegen180°
oder"down"
: Nach unten bewegen"vorwärts"
: Aktuelle Richtung
Legt die Richtung des Akteurs fest.
Sie können eine ganze Zahl oder einen String verwenden, um die Richtung zu beschreiben
- Optionen
0
,"up"
- Nachschlagen90
,"right"
, - Schau nach rechts-90
,"left"
, - Schau nach links-180
,180
,"down"
- Nach unten schauen
Beispiele
Bewege dich in eine Richtung mit den WASD-Tasten
def on_key_down(self, keys): if "W" in keys: self.direction = "up" elif "S" in keys: self.direction = "down" elif "A" in keys: self.direction = "left" elif "D" in keys: self.direction = "right" self.move()
Bewege 45°:
from miniworlds import * world = World(100, 100) c = Circle ((50,50), 10) @c.register def act(self): c.direction = 45 c.move() world.run()
Bewege -45°:
from miniworlds import * world = World(100, 100) c = Circle ((50,50), 10) @c.register def act(self): c.direction = -45 c.move() world.run()
- property end#
- property end_position#
- get_bounding_box()[Quellcode]#
- get_costume_class()[Quellcode]#
- Rückgabetyp:
type
[costume_mod.Costume]
- property length#
- property line_width#
-> Grenze sehen
- new_costume()[Quellcode]#
- property start#
- property start_position#
- property thickness#
-> Grenze sehen
Rechteck#
- class miniworlds.actors.shapes.shapes.Rectangle(position=(0, 0), width=10, height=10, *args, **kwargs)[Quellcode]#
Eine rechteckige Form, definiert durch Position, Breite und Höhe
- Parameter:
topleft – Obere linke Position des Rechtecks
height – Die Höhe des Rechtecks
width – Die Breite des Rechtecks
Beispiele
Erstellen Sie ein Rechteck mit der oberen linken Position (200, 100), der Breite 20 und der Höhe 10
Rectangle((200, 100), 20, 10)
- classmethod from_center(position, width, height)[Quellcode]#
Erstellt ein Rechteck mit dem Mittelpunkt an der Position
- classmethod from_topleft(position, width, height)[Quellcode]#
Erstellt ein Rechteck mit der oberen linken Ecke an der Position
- get_costume_class()[Quellcode]#
- Rückgabetyp:
type
[costume_mod.Costume]
- new_costume()[Quellcode]#
Polygon#
- class miniworlds.actors.shapes.shapes.Polygon(position: Tuple[float, float] | None = (0, 0), *args, **kwargs)[Quellcode]#
Eine Polygon-Form.
- Parameter:
point-list – Eine Liste von Punkten
Beispiele
Beispielerstellung eines Polygons
>>> Polygon([(200, 100), (400,100), (0, 0)]) Creates a red polygon with the vertices (200, 100) , (400, 100) and (0, 0)
Beispielerstellung eines gefüllten Polygons
>>> Polygon([(200, 100), (400,100), (0, 0)]) Creates a red polygon with the vertices (200, 100) , (400, 100) and (0, 0)
- property pointlist#