Creating start Menu in Pygame - GeeksforGeeks

05 Sep, 2020
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.
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
Python
import pygame import sys     # initializing the constructor pygame.init()   # 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:             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:                 pygame.quit()                       # fills the screen with a color     screen.fill((60,25,60))           # 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:         pygame.draw.rect(screen,color_light,[width/2,height/2,140,40])               else:         pygame.draw.rect(screen,color_dark,[width/2,height/2,140,40])           # superimposing the text onto our button     screen.blit(text , (width/2+50,height/2))           # updates the frames of the game     pygame.display.update() 
Output:
Python-PyGame
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Python Dictionary
Read a file line by line in Python
Enumerate() in Python
How to Install PIP on Windows ?
Iterate over a list in Python
Different ways to create Pandas Dataframe
Python String | replace()
Python program to convert a list to string
Reading and Writing to text files in Python
sum() function in Python