Neste artigo, aprenderemos como podemos criar botões no Arcade usando python.

Adicionando Botões

No Arcade, podemos facilmente adicionar botões ao nosso jogo. 

Para isso, usaremos algumas funções:

UIManager():

Sintaxe: arcade.gui.UIManager (janela, auto_enable)

Parâmetros:



  • janela: Nossa janela de jogo
  • auto_enable: aceita um valor booleano

UIBoxLayout():

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

Parâmetros:

  • x: coordenada x do canto inferior esquerdo
  • y: coordenada x do canto inferior esquerdo
  • vertical: layout filho vertical (verdadeiro) ou horizontal (falso)
  • alinhar: alinha os filhos na direção ortogonal (x: esquerda, centro, direita / y: topo, centro, fundo)
  • filhos: filhos iniciais, mais podem ser adicionados
  • size: Uma dica para UILayout, se este UIWidget quiser crescer

UIFlatButton():

Sintaxe: arcade.gui.UIFlatButton (x, y, largura, altura, texto, estilo)

Parâmetros:

  • x: coordenada x do widget.
  • y: coordenada y do widget.
  • largura: largura do widget. O padrão é a largura da textura, se não for especificado.
  • altura: altura do widget. O padrão é a altura da textura, se não for especificado.
  • texto: texto a ser adicionado ao botão.
  • estilo: Usado para estilizar o botão

Agora, para criar nosso botão, vamos criar uma classe chamada MainClass e, dentro desta classe, vamos inicializar uma variável para o UIManager. Depois disso, criaremos nosso botão usando o UIFlatButton() e então adicionaremos este botão em nosso UIManager. Em seguida, criaremos uma função on_draw() para desenhar nosso botão.

Abaixo está a implementação:

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

Saída:

Adicionando funções no botão

Agora vamos criar uma função on_buttonclick() que será chamada toda vez que o usuário pressionar o botão.

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

Saída:

 Atenção geek! Fortaleça suas bases com o Python Programming Foundation Course e aprenda o básico.