Python Arcade – Schaltflächen hinzufügen
In diesem Artikel erfahren wir, wie wir mit Python Schaltflächen in Arcade erstellen können.
Schaltflächen hinzufügen
In Arcade können wir unserem Spiel ganz einfach Schaltflächen hinzufügen.
Dazu verwenden wir einige Funktionen:
UIManager():
Syntax: arcade.gui.UIManager(window, auto_enable)
Parameter:
- Fenster : Unser Spielfenster
- auto_enable : Akzeptiert einen booleschen Wert
UIBoxLayout():
Syntax: arcade.gui.UIBoxLayout(x, y, vertikal, ausrichten, Kinder, Größe)
Parameter:
- x : x-Koordinate von unten links
- y : x-Koordinate von unten links
- vertikal : Layout untergeordnete Elemente vertikal (True) oder horizontal (False)
- align : Kinder in orthogonaler Richtung ausrichten (x: links, zentriert, rechts / y: oben, zentriert, unten)
- children : Anfängliche Kinder, weitere können hinzugefügt werden
- size : Ein Hinweis für UILayout, wenn dieses UIWidget wachsen möchte
UIFlatButton():
Syntax: arcade.gui.UIFlatButton( x, y, Breite, Höhe, Text, Stil)
Parameter:
- x : x-Koordinate des Widgets.
- y : y-Koordinate des Widgets.
- width : Breite des Widgets. Standardmäßig die Texturbreite, wenn nicht angegeben.
- Höhe : Höhe des Widgets. Standardmäßig die Texturhöhe, wenn nicht angegeben.
- text : Text, der der Schaltfläche hinzugefügt werden soll.
- style : Wird verwendet, um die Schaltfläche zu stylen
Um nun unsere Schaltfläche zu erstellen, erstellen wir eine Klasse namens MainClass und innerhalb dieser Klasse werden wir eine Variable für den UIManager initialisieren. Danach erstellen wir unsere Schaltfläche mit UIFlatButton() und fügen diese Schaltfläche dann in unserem UIManager hinzu. Dann erstellen wir eine on_draw()-Funktion, um unsere Schaltfläche zu zeichnen.
Nachfolgend die Umsetzung:
Python3
# Importing arcade module import arcade # Importing arcade gui import arcade.gui # Creating MainGame class class MainGame(arcade.Window): def __init__(self): super().__init__(600, 600, title="Buttons") # Changing background color of screen arcade.set_background_color(arcade.color.BLUE) # Creating a UI MANAGER to handle the UI self.uimanager = arcade.gui.UIManager() self.uimanager.enable() # Creating Button using UIFlatButton start_button = arcade.gui.UIFlatButton(text="Start Game", width=200) # Adding button in our uimanager self.uimanager.add( arcade.gui.UIAnchorWidget( anchor_x="center_x", anchor_y="center_y", child=start_button) ) # Creating on_draw() function to draw on the screen def on_draw(self): arcade.start_render() # Drawing our ui manager self.uimanager.draw() # Calling MainGame class MainGame() arcade.run()
Ausgabe:
Hinzufügen von Funktionen in Button
Jetzt erstellen wir eine on_buttonclick()-Funktion, die jedes Mal aufgerufen wird, wenn der Benutzer auf die Schaltfläche drückt.
Python3
# Importing arcade module import arcade # Importing arcade gui import arcade.gui # Creating MainGame class class MainGame(arcade.Window): def __init__(self): super().__init__(600, 600, title="Buttons") # Changing background color of screen arcade.set_background_color(arcade.color.BLUE) # Creating a UI MANAGER to handle the UI self.uimanager = arcade.gui.UIManager() self.uimanager.enable() # Creating Button using UIFlatButton start_button = arcade.gui.UIFlatButton(text="Start Game", width=200) # Assigning our on_buttonclick() function start_button.on_click = self.on_buttonclick # Adding button in our uimanager self.uimanager.add( arcade.gui.UIAnchorWidget( anchor_x="center_x", anchor_y="center_y", child=start_button) ) # This function will be called everytime the user # presses the start button def on_buttonclick(self, event): print("Button is clicked") # Creating on_draw() function to draw on the screen def on_draw(self): arcade.start_render() # Drawing our ui manager self.uimanager.draw() # Calling MainGame class MainGame() arcade.run()
Ausgabe: