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.

Formen
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

Kreis
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.

Ellipse
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.

Linie
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 . Alle Akteure schauen "nach oben"

Bewege dich weiter, Welt

Werte für Richtung

  • oder "up": oben

  • 90° oder "right": Nach rechts bewegen

  • -90° oder "left": Nach links bewegen

  • 180° 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" - Nachschlagen

  • 90, "right", - Schau nach rechts

  • -90, "left", - Schau nach links

  • -180, 180, "down" - Nach unten schauen

../_images/direction.png

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

Linie
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#