World#
The base class for all of your worlds.
Verwende world.send_message("name") fuer einfache Broadcasts zwischen Welt, Actors und angedockten GUI-Welten.
Für Einsteigerklassen setze world.learning_mode = True. Das aktiviert weiche Umwandlungen für typische Fehler in ausgewählten öffentlichen APIs, zum Beispiel bool-ähnliche Zeichenketten wie "yes"/"no" bei einigen Flags und Listenpositionen, wo Tupelpositionen erwartet werden.
Nutzliche Anfaenger-Aliasse auf World sind:
contains(...)forcontains_position(...)broadcast(...)forsend_message(...)actors_at(...)fordetect_actors(...)set_bg(...),add_bg(...),next_bg()for background helpers
API-Referenz#
- class miniworlds.worlds.world.World(x=400, y=400)[Quellcode]#
Pixelbasierte Szene, die Actor, Hintergründe, Eingaben und Ereignisse besitzt.
Positionen in einer
Worldsind Pixelkoordinaten. Actor werden standardmäßig über ihre linke obere Position platziert, sofern ihr Ursprung nicht geändert wurde.Hinweise
Kollisionsprüfungen verwenden standardmäßig Sprite-Masken.
Beispiele
Create and run a world: from miniworlds import World world = World(300, 200) world.run() Configure a subclass during setup: import miniworlds class MyWorld(miniworlds.World): def on_setup(self): self.columns = 300 self.rows = 200
- __init__(x=400, y=400)[Quellcode]#
Erzeuge eine Welt mit der angegebenen Größe.
- Parameter:
x – Breite in Pixeln oder ein
(breite, höhe)-Tupel.y – Höhe in Pixeln. Wird ignoriert, wenn
xein Tupel ist.
Beispiele
world = World(400, 300) square_world = World((200, 200))
- actors_at(position)[Quellcode]#
Schülerfreundlicher Alias für
detect_actors(position).
- add_background(source)[Quellcode]#
Fügt einen Hintergrund hinzu und macht ihn aktiv.
- Rückgabetyp:
- Parameter:
source – Bildpfad oder RGB/RGBA-Farbtupel.
- Rückgabe:
The newly created Background.
Beispiele
world.add_background((255, 0, 0)) world.add_background("images/background.png")
- add_bg(source)[Quellcode]#
Schülerfreundlicher Alias für
add_background(source).- Rückgabetyp:
- property background: Background#
Currently active world background.
Beispiele
world.background = (30, 30, 30) world.background = "images/sky.png" current = world.background
- Typ:
- broadcast(message, data=None)[Quellcode]#
Schülerfreundlicher Alias für
send_message(message, data).- Rückgabetyp:
- property columns: int#
Breite des sichtbaren Weltbereichs in Pixeln.
Beispiele
world.columns = 640
- Typ:
- contains(pos)[Quellcode]#
Gibt zurück, ob eine Position innerhalb der Welt liegt.
This is a short alias for contains_position().
- contains_position(pos)[Quellcode]#
Gibt zurück, ob eine Position innerhalb der Welt liegt.
- Parameter:
pos – Position as (x, y).
- Rückgabe:
True if the position is inside the world.
Beispiele
if world.contains_position(actor.center): actor.move()
- contains_rect(rect)[Quellcode]#
Gibt zurück, ob ein Rechteck vollständig innerhalb der Welt liegt.
- Parameter:
rect – Rechteck als
(x, y, breite, höhe)oderpygame.Rect.- Rückgabe:
True if the whole rectangle is inside the world.
Beispiele
if world.contains_rect(actor.rect): actor.move()
- contains_rect_any(rect)[Quellcode]#
Gibt zurück, ob irgendein Teil eines Rechtecks innerhalb der Welt liegt.
- Parameter:
rect – Rechteck als
(x, y, breite, höhe)oderpygame.Rect.- Rückgabe:
True, wenn mindestens ein Teil des Rechtecks innerhalb der Welt liegt.
Beispiele
if not world.contains_rect_any(actor.rect): actor.remove()
- property debug: bool#
Ob ein kompaktes Debug-Overlay zur Laufzeit gezeichnet wird.
Beispiele
world.debug = True
- Typ:
- detect_actors(position)[Quellcode]#
Gibt alle Actor an einer Weltposition zurück.
- Rückgabetyp:
- Parameter:
position – World position as (x, y).
- Rückgabe:
Actors found at the position.
Beispiele
actors = world.detect_actors(player.position) for actor in actors: if isinstance(actor, Coin): actor.remove()
- dialog#
- direction_to(pos1, pos2)[Quellcode]#
Gibt die Miniworlds-Richtung von einer Position zu einer anderen zurück.
- Rückgabetyp:
- Parameter:
pos1 – Start position as (x, y).
pos2 – Target position as (x, y).
- Rückgabe:
Richtungswinkel in Grad.
Beispiele
mouse_position = world.mouse.get_position() actor.direction = world.direction_to(actor.center, mouse_position)
- static distance_to(pos1, pos2)[Quellcode]#
Gibt den euklidischen Abstand zwischen zwei Positionen zurück.
- Rückgabetyp:
- Parameter:
pos1 – First position as (x, y).
pos2 – Second position as (x, y).
- Rückgabe:
Abstand zwischen beiden Positionen.
Beispiele
distance = World.distance_to((0, 0), (3, 4))
- property fps: int#
Frames per second of the render loop.
Dies steuert die Zeichenfrequenz. Die Logikfrequenz kann unabhängig über
world.tick_rateeingestellt werden.Example
world.fps = 24 world.tick_rate = 2
- get_actors_from_pixel(pixel)[Quellcode]#
Gibt alle Actor unter einem Bildschirmpixel zurück.
- Rückgabetyp:
- Parameter:
pixel – Screen pixel as (x, y).
- Rückgabe:
Actor, deren Bildschirmrechteck den Pixel überlappt.
Beispiele
@world.register def on_mouse_left(self, position): for actor in self.get_actors_from_pixel(position): actor.hide()
- get_background()[Quellcode]#
Return the active background.
- Rückgabetyp:
- Rückgabe:
The current Background.
Beispiele
bg = world.get_background() bg.fill_color = (0, 0, 0)
- get_from_pixel(position)[Quellcode]#
Wandelt eine Bildschirmpixelposition in eine Weltposition um.
- Rückgabetyp:
- Parameter:
position – Pixel position as (x, y).
- Rückgabe:
Weltposition oder
None, wenn der Pixel außerhalb der Welt liegt.
Beispiele
@world.register def on_mouse_left(self, position): world_position = self.get_from_pixel(position) if world_position: Actor(world_position)
- property has_background: bool#
Whether the world has at least one background.
Beispiele
if world.has_background: world.next_bg()
- Typ:
- is_in_world(position)[Quellcode]#
Gibt zurück, ob eine Position innerhalb der Welt liegt.
- Rückgabetyp:
- Parameter:
position – Position as (x, y).
- Rückgabe:
True if the position is inside the world.
Beispiele
if world.is_in_world((100, 100)): print("inside")
- property layout#
Abwärtskompatible Docking-API für älteren Beispielcode.
Der eigentliche Layout-Manager bleibt intern unter
world._layout. Öffentliche Docking-Hilfen liegen weiterhin unterworld.cameraund werden hier als Kompatibilitätsalias für bestehendes Unterrichtsmaterial verfügbar gemacht.
- property learning_mode: bool#
Ob einsteigerfreundliche Umwandlungen und Hinweise aktiviert sind.
Beispiele
world.learning_mode = True
- Typ:
- next_bg()[Quellcode]#
Schülerfreundlicher Alias, um zum nächsten Hintergrund zu wechseln.
- Rückgabetyp:
- on_setup()[Quellcode]#
Hook für die anfängliche Einrichtung der Welt.
Überschreibe dies in Unterklassen oder registriere eine Funktion mit
@world.register.- Rückgabetyp:
Beispiele
@world.register def on_setup(self): self.background = (0, 0, 0) Actor((20, 20))
- quit(exit_code=0)[Quellcode]#
Beendet die Anwendung und schließt das Spielfenster.
- Rückgabetyp:
- Parameter:
exit_code – Prozess-Exitcode.
Beispiele
world.quit()
- remove_background(background=None)[Quellcode]#
Entfernt einen Hintergrund.
- Rückgabetyp:
- Parameter:
background – Hintergrundindex oder
Appearance. Wenn nichts angegeben wird, wird der letzte Hintergrund entfernt.
Beispiele
world.remove_background() world.remove_background(0)
- reset()[Quellcode]#
Setzt die Welt in ihren Anfangszustand zurück.
Beispiele
@player.register def on_detecting_actor(self, other): if isinstance(other, Enemy): self.world.reset()
- run(fullscreen=False, fit_desktop=False, replit=False, event=None, data=None)[Quellcode]#
Startet die Miniworlds-Hauptschleife.
Rufe dies einmal am Ende eines Miniworlds-Programms auf.
- Rückgabetyp:
- Parameter:
fullscreen – Ob im Vollbildmodus gestartet werden soll.
fit_desktop – Ob das Fenster an den Desktop angepasst werden soll.
replit – Ob Replit-spezifische Anzeigeanpassungen verwendet werden sollen.
event – Optionaler Ereignisname, der beim Start eingereiht wird.
data – Optionale Daten für das Startereignis.
Beispiele
world = World(800, 600) world.run()
- send_message(message, data=None)[Quellcode]#
Sendet eine Nachricht an die Welt und ihre Actor.
Die Nachricht wird über das Ereignissystem verteilt und kann von registrierten Nachrichten-Handlern verarbeitet werden.
- Rückgabetyp:
- Parameter:
message – Nachrichtenname.
data – Optionale Nutzdaten für nachrichtenspezifische Handler.
Beispiele
world.send_message("game_over") @world.register def on_message(self, message): if message == "game_over": self.stop()
- set_background(source)[Quellcode]#
Replace the active background.
- Rückgabetyp:
- Parameter:
source – Bildpfad oder RGB/RGBA-Farbtupel.
- Rückgabe:
The new active Background.
Beispiele
world.set_background("images/sky.png") world.set_background((30, 30, 30))
- set_bg(source)[Quellcode]#
Schülerfreundlicher Alias für
set_background(source).- Rückgabetyp:
- set_columns(value)[Quellcode]#
Setzt die sichtbare Weltbreite in Pixeln.
- Rückgabetyp:
- Parameter:
value – Neue Breite in Pixeln.
Beispiele
world.set_columns(640)
- set_rows(value)[Quellcode]#
Setzt die sichtbare Welthöhe in Pixeln.
- Rückgabetyp:
- Parameter:
value – Neue Höhe in Pixeln.
Beispiele
world.set_rows(480)
- property size: Tuple[int, int]#
Weltgröße als
(breite, höhe)in Pixeln.Beispiele
width, height = world.size world.size = (800, 600)
- start()[Quellcode]#
Start or resume world updates.
- Rückgabetyp:
Beispiele
world.start()
- stop(frames=0)[Quellcode]#
Stoppt Weltaktualisierungen sofort oder nach einer Anzahl von Frames.
- Rückgabetyp:
- Parameter:
frames – Frames, die vor dem Stoppen gewartet werden.
0stoppt sofort.
Beispiele
world.stop() world.stop(frames=5)
- switch_background(background)[Quellcode]#
Switch to another background.
Übergebe einen Index, eine vorhandene Darstellung oder
-1für den nächsten Hintergrund.- Rückgabetyp:
- Parameter:
background – Hintergrundindex,
Appearanceoder-1.- Rückgabe:
The new active Background.
Beispiele
world.add_background("images/day.png") world.add_background("images/night.png") world.switch_background(1) world.switch_background(-1)
- switch_world(new_world, reset=False)[Quellcode]#
Wechselt die aktive Szene zu einer anderen Welt.
- Rückgabetyp:
- Parameter:
new_world – Die Welt, die aktiv werden soll.
reset – Wenn
True, wird die neue Welt vor dem Start zurückgesetzt.
- property tick_rate: int#
Wie oft die Weltlogik relativ zur Frame-Schleife läuft.
Ein Wert von
1führt die Spiellogik in jedem Frame aus. Ein Wert von30führt sie in jedem 30. Frame aus.Example
from miniworlds import World
world = World(120, 210) world.fps = 60 world.tick_rate = 3 world.run()
- to_pixel(position)[Quellcode]#
Wandelt eine Weltposition in eine Bildschirmpixelposition um.
- Rückgabetyp:
- Parameter:
position – World position as (x, y).
- Rückgabe:
Pixel position as (x, y).
Beispiele
pixel = world.to_pixel(actor.position)
Ausnahmen#
Diese Ausnahmen werden von miniworlds exportiert, damit Code gezielt Miniworlds-Fehler abfangen kann. Sie sind hier dokumentiert, haben aber bewusst keinen eigenen Navigationseintrag.
- exception miniworlds.base.exceptions.CostumeOutOfBoundsError(actor, costume_count, costume_number)[Quellcode]#
- exception miniworlds.base.exceptions.OriginException(actor, value=None)[Quellcode]#