Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Python Arcade – Adding Buttons

  • Difficulty Level : Expert
  • Last Updated : 23 Sep, 2021

In this article, we will learn How we can create buttons in Arcade using python.

Adding Buttons

In Arcade we can easily add buttons to our game. 

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

For this, we will use some functions:



UIManager():

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

Parameters:

  • window : Our game window
  • auto_enable : Accepts a boolean value

UIBoxLayout():

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

Parameters:

  • x : x coordinate of bottom left
  • y : x coordinate of bottom left
  • vertical : Layout children vertical (True) or horizontal (False)
  • align : Align children in orthogonal direction (x: left, center, right / y: top, center, bottom)
  • children : Initial children, more can be added
  • size : A hint for UILayout, if this UIWidget would like to grow

UIFlatButton():

Syntax: arcade.gui.UIFlatButton( x, y, width, height, text, style)

Parameters:

  • x : x-coordinate of widget.
  • y  : y-coordinate of widget.
  • width : width of widget. Defaults to texture width if not specified.
  • height : height of widget. Defaults to texture height if not specified.
  • text : text to add to the button.
  • style : Used to style the button

Now to create our button we are going to create a class named MainClass and inside this class, we are going to initialize one variable for the UIManager. After that, we will create our button using the UIFlatButton() then we will add this button in our UIManager. Then we will create an on_draw() function to draw our button.

Below is the implementation:



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

Output:

Adding functions in Button

Now we are going to create an on_buttonclick() function which will be called every time the user presses the button.

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

Output:




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!