World > Tiled World#
API-Referenz#
- class miniworlds.worlds.tiled_world.tiled_world.TiledWorld(x=20, y=16, tile_size=40, empty=False)[Quellcode]#
Grid-based world where actors are placed on tiles.
Eine
TiledWorldverwendet Kachelkoordinaten statt Pixelkoordinaten für Actor-Positionen. Actor können auch auf Kachelecken oder Kanten platziert werden.Beispiele
Create a small grid world: from miniworlds import TiledWorld, Actor world = TiledWorld(6, 3) player = Actor((1, 1)) player.fill_color = (255, 255, 255) @player.register def on_key_down_right(self): self.move_in_direction("right") world.run()
- __init__(x=20, y=16, tile_size=40, empty=False)[Quellcode]#
Create a tiled world.
- Parameter:
x – Number of columns.
y – Number of rows.
tile_size – Tile size in pixels.
empty – If True, tiles, edges, and corners are not created automatically.
Beispiele
world = TiledWorld(8, 6) empty_world = TiledWorld(8, 6, empty=True)
- add_corner_to_world(position, direction)[Quellcode]#
Create and register a corner.
Vorhandene Ecken werden zusammengeführt, wenn mehrere Kacheln dieselbe Ecke teilen.
- Parameter:
position – Basiskachelposition als
(spalte, zeile).direction – Richtungsschlüssel der Ecke, zum Beispiel
"nw".
- Rückgabe:
Das registrierte Eckenobjekt.
Beispiele
corner = world.add_corner_to_world((2, 3), "nw")
- add_edge_to_world(position, direction)[Quellcode]#
Create and register an edge.
Vorhandene Kanten werden zusammengeführt, wenn benachbarte Kacheln dieselbe Kante beschreiben.
- Parameter:
position – Basiskachelposition als
(spalte, zeile).direction – Richtungsschlüssel der Kante, zum Beispiel
"n"oder"w".
- Rückgabe:
Das registrierte Kantenobjekt.
Beispiele
edge = world.add_edge_to_world((2, 3), "w")
- add_tile_to_world(position)[Quellcode]#
Erzeugt und registriert eine Kachel an einer Rasterposition der Welt.
- Parameter:
position – Kachelposition als
(spalte, zeile).- Rückgabe:
Die erzeugte Kachelinstanz.
Beispiele
tile = world.add_tile_to_world((2, 3))
- borders(value)[Quellcode]#
Gibt die Ränder zurück, die von einer Position oder einem Rechteck berührt werden.
- Rückgabetyp:
- Parameter:
value – Zu prüfende Position oder zu prüfendes Rechteck.
- Rückgabe:
Liste von Randnamen wie
"left"oder"top".
Beispiele
borders = world.borders(actor.position)
- clear_tiles()[Quellcode]#
Remove all tiles, corners, and edges.
Verwende
empty=Trueim Konstruktor, wenn alle Kacheln von Anfang an manuell aufgebaut werden sollen.Beispiele
world = TiledWorld(8, 8, empty=True) world.add_tile_to_world((0, 0)) world.clear_tiles() world.add_tile_to_world((1, 1))
- property columns: int#
Breite des sichtbaren Weltbereichs in Pixeln.
Beispiele
world.columns = 640
- Typ:
- detect_actor_at_position(position)[Quellcode]#
Return the first actor at a tile position.
- Parameter:
position – Kachelposition als
(spalte, zeile).- Rückgabe:
Der erste Actor an dieser Position oder
None.
Beispiele
actor = world.detect_actor_at_position((2, 3))
- detect_actors(position)[Quellcode]#
Gibt alle Actor an einer Weltposition zurück.
- Rückgabetyp:
- Parameter:
position – Weltposition als
(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()
- detect_actors_at_position(position)[Quellcode]#
Gibt alle Actor an einer Kachelposition zurück.
- Parameter:
position – Kachelposition als
(spalte, zeile).- Rückgabe:
Actor an dieser Position.
Beispiele
actors = world.detect_actors_at_position((2, 3))
- dialog#
- draw_on_image(image, position)[Quellcode]#
Zeichnet ein Bild auf den Hintergrund der Kachelwelt.
- Parameter:
image – Das zu zeichnende Bild oder Surface.
position – Kachelposition als
(spalte, zeile).
Beispiele
world.draw_on_image(surface, (2, 3))
- get_actors_from_pixel(position)[Quellcode]#
Gibt alle Actor unter einem Bildschirmpixel zurück.
- Rückgabetyp:
- Parameter:
pixel – Bildschirmpixel als
(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_corner(position, direction=None)[Quellcode]#
Return a corner by corner position or tile position plus direction.
- Parameter:
position – Corner position, or tile position when direction is set.
direction – Optionale Eckenrichtung, zum Beispiel
"nw".
- Rückgabe:
Die passende Ecke.
- Verursacht:
CornerNotFoundError – Wenn an der aufgelösten Position keine Ecke existiert.
Beispiele
corner = world.get_corner(actor.position) corner = world.get_corner((3, 1), "nw")
- get_edge(position, direction=None)[Quellcode]#
Return an edge by edge position or tile position plus direction.
- Parameter:
position – Edge position, or tile position when direction is set.
direction – Optionale Kantenrichtung, zum Beispiel
"n"oder"w".
- Rückgabe:
Die passende Kante.
Beispiele
edge = world.get_edge(actor.position) edge = world.get_edge((5, 1), "w")
- get_from_pixel(position)[Quellcode]#
Gibt die Kachelposition zu einem Bildschirmpixel zurück.
- Parameter:
position – Pixelposition als
(x, y).- Rückgabe:
Kachelposition oder
None, wenn der Pixel außerhalb der Kameraansicht liegt.
Beispiele
tile_position = world.get_from_pixel((80, 120))
- get_tile(position)[Quellcode]#
Gibt die Kachel an einer Kachelposition zurück.
- Parameter:
position – Kachelposition als
(spalte, zeile).- Rückgabe:
Die Kachel an der Position.
- Verursacht:
TileNotFoundError – Wenn an der Position keine Kachel existiert.
Beispiele
tile = world.get_tile(actor.position) tile = world.get_tile((1, 1)) if tile.get_actors(): print("Tile is occupied")
- get_tile_from_pixel(position)[Quellcode]#
Gibt die Kachel unter einem Bildschirmpixel zurück.
- Parameter:
position – Pixelposition als
(x, y).- Rückgabe:
Tile under the pixel.
Beispiele
tile = world.get_tile_from_pixel((80, 120))
- is_corner(position)[Quellcode]#
Gibt zurück, ob eine Position eine Eckenposition ist.
Beispiele
if world.is_corner(actor.position): actor.hide()
- is_edge(position)[Quellcode]#
Gibt zurück, ob eine Position eine Kantenposition ist.
Beispiele
if world.is_edge(actor.position): actor.hide()
- is_tile(position)[Quellcode]#
Gibt zurück, ob eine Position eine Kachelposition ist.
Beispiele
if world.is_tile((1, 1)): tile = world.get_tile((1, 1))
- set_columns(value)[Quellcode]#
Set the visible world width in pixels.
- Parameter:
value – New width in pixels.
Beispiele
world.set_columns(640)
- set_rows(value)[Quellcode]#
Set the visible world height in pixels.
- Parameter:
value – New height in pixels.
Beispiele
world.set_rows(480)
- set_tile_size(value)[Quellcode]#
Set the tile size in pixels.
- Parameter:
value – New tile size in pixels.
Beispiele
world.set_tile_size(32)
- to_pixel(position, size=(0, 0), origin=(0, 0))[Quellcode]#
Wandelt eine Kachelposition in Pixelkoordinaten um.
- Parameter:
position – Kachelposition als
(spalte, zeile).size – Für Kompatibilität reserviert.
origin – Pixelversatz, der zur umgerechneten Position addiert wird.
- Rückgabe:
Pixelposition als
(x, y).
Beispiele
pixel = world.to_pixel((2, 3))