Python Arcade: agregar botones

En este artículo, aprenderemos cómo podemos crear botones en Arcade usando Python.

Agregar botones

En Arcade podemos agregar fácilmente botones a nuestro juego. 

Para ello, utilizaremos algunas funciones:

UIManager():

Sintaxis: arcade.gui.UIManager(window, auto_enable)

Parámetros:

  • ventana : Nuestra ventana de juego
  • auto_enable: acepta un valor booleano

UIBoxLayout():

Sintaxis: arcade.gui.UIBoxLayout(x, y, vertical, align, children, size)

Parámetros:

  • x : coordenada x de abajo a la izquierda
  • y : coordenada x de abajo a la izquierda
  • vertical : Disposición de niños vertical (Verdadero) u horizontal (Falso)
  • align : Alinea a los niños en dirección ortogonal (x: izquierda, centro, derecha / y: arriba, centro, abajo)
  • niños: niños iniciales, se pueden agregar más
  • tamaño: una pista para UILayout, si este UIWidget quisiera crecer

UIFlatButton():

Sintaxis: arcade.gui.UIFlatButton(x, y, ancho, alto, texto, estilo)

Parámetros:

  • x : coordenada x del widget.
  • y : coordenada y del widget.
  • ancho: ancho del widget. El valor predeterminado es el ancho de la textura si no se especifica.
  • altura : altura del widget. El valor predeterminado es la altura de la textura si no se especifica.
  • text : texto a añadir al botón.
  • estilo : se utiliza para diseñar el botón

Ahora, para crear nuestro botón, vamos a crear una clase llamada MainClass y, dentro de esta clase, vamos a inicializar una variable para UIManager. Después de eso, crearemos nuestro botón usando UIFlatButton() y luego agregaremos este botón en nuestro UIManager. Luego crearemos una función on_draw() para dibujar nuestro botón.

A continuación se muestra la implementación:

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()

Producción:

Agregar funciones en Button

Ahora vamos a crear una función on_buttonclick() que se llamará cada vez que el usuario presione el botón.

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()

Producción:

Publicación traducida automáticamente

Artículo escrito por imranalam21510 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *