Open In App

How to show a timer on screen using arcade in Python3?

Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite: Arcade library

Arcade is a modern framework, which is used to make 2D video games. In this, article, you will learn how to show an on-screen timer using the arcade module of Python. Displaying a timer on screen  is not tough job, just follow the below steps:-

Step 1: First of all import the arcade module of Python

Python3




import arcade


Step 2: Define parameters necessary for the output screen.

Python3




WIDTH = 800
HEIGHT = 600
TITLE = "Timer"


Step 3: Define a class MYTimer and under that class, set the background color and starting time.

Python3




class MyTimer(arcade.Window):
  
    def setup(self):
        arcade.set_background_color(arcade.color.WHITE)
        self.total_time = 0.0


Step 4: Under MyTimer class, define one function to calculate the minutes and seconds.

Python3




def on_draw(self):
  
    # Start the render.
    arcade.start_render()
  
    # Calculate minutes
    minutes = int(self.total_time) // 60
  
    # Calculate seconds by using a modulus
    seconds = int(self.total_time) % 60
  
    # Figure out your output
    output = f"Time: {minutes:02d}:{seconds:02d}"
  
    # Output the timer text.
    arcade.draw_text(output, 300, 300, arcade.color.BOTTLE_GREEN, 45)


Step 5: Now, define an on_update function to update time with each increasing minutes and seconds.

Python3




def on_update(self, delta_time):
    self.total_time += delta_time


Step 6: Last and foremost step is to define main() and call it in the end.

Python3




def main():
    window = MyTimer()
    window.setup()
    arcade.run()
  
main()


Complete code

Python3




#import module
import arcade
  
# screen parameters
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
SCREEN_TITLE = "Timer "
  
# define class
  
  
class MyTimer(arcade.Window):
  
    def setup(self):
        arcade.set_background_color(arcade.color.WHITE)
        self.total_time = 0.0
  
    def on_draw(self):
  
        # Start the render.
        arcade.start_render()
  
        # Calculate minutes
        minutes = int(self.total_time) // 60
  
        # Calculate seconds by using a modulus
        seconds = int(self.total_time) % 60
  
        # Figure out your output
        output = f"Time: {minutes:02d}:{seconds:02d}"
  
        # Output the timer text.
        arcade.draw_text(output, 300, 300, arcade.color.BOTTLE_GREEN, 45)
  
    # update
    def on_update(self, delta_time):
        self.total_time += delta_time
  
# main function
def main():
    window = MyTimer()
    window.setup()
    arcade.run()
  
  
# call main function
main()


Output:



Last Updated : 20 Oct, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads