Actor > Widgets#

Verwenden Sie Button, wenn ein Widget einfach nur eine Nachricht senden soll.

API-Referenz#

Knopf#

class miniworlds.actors.widgets.button.Button(text='', image='')[Quellcode]#

Anklickbares Button-Widget für eine Toolbar.

Beim Anklicken sendet der Button seinen Beschriftungstext als Nachricht an die Welt. Die Welt oder jeder Actor kann mit on_message darauf reagieren.

Parameter:
  • text – Der Text, der auf dem Button angezeigt wird. Derselbe Text wird beim Anklicken als Nachricht gesendet.

  • image – Optionaler Pfad zu einem Bild, das auf dem Button angezeigt wird.

Beispiele

toolbar = Toolbar()
start_button = Button("Start")
toolbar.add(start_button)
world.camera.add_right(toolbar)

@world.register
def on_message(self, message):
    if message == "Start":
        print("Game started")
__init__(text='', image='')[Quellcode]#

Erzeuge einen Toolbar-Button.

Parameter:
  • text – Die Button-Beschriftung und zugleich die Nachricht, die beim Anklicken gesendet wird.

  • image – Optionaler Bildpfad für den Button.

act()[Quellcode]#

Zählt die kurze Klick-Sperre herunter.

Die Sperre verhindert, dass der Button dieselbe Nachricht mehrfach in wenigen Frames sendet, während die Maustaste noch gedrückt ist.

Rückgabetyp:

None

on_clicked_left(mouse_pos)[Quellcode]#

Wird aufgerufen, wenn der Button angeklickt wird.

Standardmäßig wird dann eine Nachricht mit dem Button-Text an die Welt gesendet.

Rückgabetyp:

None

Beispiele

button = Button("Start Rocket")

@world.register
def on_message(self, message):
    if message == "Start Rocket":
        rocket.started = True

Etikett#

class miniworlds.actors.widgets.label.Label(position: Tuple[float, float] | None = (0, 0), *args, **kwargs)[Quellcode]#

Text-Label für die Verwendung in einer Toolbar.

Label wird typischerweise für Überschriften, Statustexte, Punkte oder andere Informationen in einer Toolbar verwendet.

Parameter:
  • text – Der Text, der im Label angezeigt wird.

  • image – Optionaler Pfad zu einem Bild, das statt des Textes oder zusätzlich dazu angezeigt wird.

Beispiele

toolbar = Toolbar()
score_label = Label("Score: 0")
toolbar.add(score_label)
world.camera.add_right(toolbar)
__init__(text, image=None)[Quellcode]#

Erzeuge ein Label-Widget.

Parameter:
  • text – Der vom Label angezeigte Text.

  • image – Optionaler Bildpfad.

Input#

class miniworlds.actors.widgets.input.Input(position: Tuple[float, float] | None = (0, 0), *args, **kwargs)[Quellcode]#
property cursor_position#
has_focus()[Quellcode]#
property max_chars#
on_focus()[Quellcode]#
on_focus_lost()[Quellcode]#
on_key_down(keys)[Quellcode]#

Wird einmal aufgerufen, wenn eine Taste gedrückt wird.

Registriere on_key_down_<buchstabe> (zum Beispiel on_key_down_a), wenn nur auf einen bestimmten Buchstaben reagiert werden soll.

Für Pfeiltasten verwende on_key_down_left, on_key_down_right, on_key_down_up oder on_key_down_down.

Parameter:

key – Liste von Varianten des Tastennamens, zum Beispiel ["A", "a"] oder ["left"].

Beispiele

@player.register
def on_key_down(self, key):
    if "left" in key:
        self.direction = "left"
    elif "right" in key:
        self.direction = "right"
    self.move()

@player.register
def on_key_down_space(self):
    self.send_message("jump")
resize()[Quellcode]#
set_text(text)[Quellcode]#

Setzt den Text des Widgets.

Werte vom Typ int und float werden in Zeichenketten umgewandelt.

update_cursor()[Quellcode]#

YesNoButton#

class miniworlds.actors.widgets.yesno.YesNoButton(position: Tuple[float, float] | None = (0, 0), *args, **kwargs)[Quellcode]#
get_no_button()[Quellcode]#
get_yes_button()[Quellcode]#

CounterLabel#

class miniworlds.actors.widgets.counter.CounterLabel(position: Tuple[float, float] | None = (0, 0), *args, **kwargs)[Quellcode]#

Ein Zähler-Label enthält eine description und einen counter.

Der Zähler startet mit dem Wert 0 und kann mit add und sub verändert werden.

add(value)[Quellcode]#

Erhöhe den Zähler um value.

get_value()[Quellcode]#
set(value)[Quellcode]#
sub(value)[Quellcode]#

Verringere den Zähler um value.

update_text()[Quellcode]#