Open In App

Creating start Menu in Pygame

Last Updated : 05 Sep, 2020
Like Article

Pygame is a Python library that can be used specifically to design and build games. Pygame supports only 2d games that are built using different shapes or sprites. Pygame doesn’t have an in-built layout design or any in-built UI system this means there is no easy way to make UI or levels for a game. The only way to make levels or different menus in pygame is by using functions.

Using Functions As Menus

Functions in Pygame are a way to contain different menus or levels by defining an event type in each function, then calling the functions from their respective container function. 

For example, the game function will be called if the player hits the play button on the start menu. So, the start menu function becomes container functions for the game function. The important thing to note is that the start function can’t be called directly from game function. If the game contains different unlockable levels, then the previous level becomes the container function for the next level.

Sample Code For A Game Containing Start Menu

Python program to demonstrate Menus And Levels


import pygame 
import sys 
# initializing the constructor 
# screen resolution 
res = (720,720
# opens up a window 
screen = pygame.display.set_mode(res) 
# white color 
color = (255,255,255
# light shade of the button 
color_light = (170,170,170
# dark shade of the button 
color_dark = (100,100,100
# stores the width of the 
# screen into a variable 
width = screen.get_width() 
# stores the height of the 
# screen into a variable 
height = screen.get_height() 
# defining a font 
smallfont = pygame.font.SysFont('Corbel',35
# rendering a text written in 
# this font 
text = smallfont.render('quit' , True , color) 
while True
    for ev in pygame.event.get(): 
        if ev.type == pygame.QUIT: 
        #checks if a mouse is clicked 
        if ev.type == pygame.MOUSEBUTTONDOWN: 
            #if the mouse is clicked on the 
            # button the game is terminated 
            if width/2 <= mouse[0] <= width/2+140 and height/2 <= mouse[1] <= height/2+40
    # fills the screen with a color 
    # stores the (x,y) coordinates into 
    # the variable as a tuple 
    mouse = pygame.mouse.get_pos() 
    # if mouse is hovered on a button it 
    # changes to lighter shade 
    if width/2 <= mouse[0] <= width/2+140 and height/2 <= mouse[1] <= height/2+40
    # superimposing the text onto our button 
    screen.blit(text , (width/2+50,height/2)) 
    # updates the frames of the game 


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads