Python | Display text to PyGame window

09 Apr, 2022
Pygame is a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language. Now, it’s up to the imagination or necessity of the developer, what type of game he/she wants to develop using this toolkit..
Command to install pygame on windows based system :  
pip install pygame
  There are 7-basic steps to displaying Text on the pygame window :  
Create a display surface object using display.set_mode() method of pygame.
Create a Font object using font.Font() method of pygame.
Create a Text surface object i.e.surface object in which Text is drawn on it, using render() method of pygame font object.
Create a rectangular object for the text surface object using get_rect() method of pygame text surface object.
Set the position of the Rectangular object by setting the value of the center property of pygame rectangular object.
Copying the Text surface object to the display surface object using blit() method of pygame display surface object.
Show the display surface object on the pygame window using the display.update() method of pygame.
Below is the implementation: 
Python3
# import pygame module in this programimport pygame # activate the pygame library# initiate pygame and give permission# to use pygame's functionality.pygame.init() # define the RGB value for white,#  green, blue colour .white = (255, 255, 255)green = (0, 255, 0)blue = (0, 0, 128) # assigning values to X and Y variableX = 400Y = 400 # create the display surface object# of specific dimension..e(X, Y).display_surface = pygame.display.set_mode((X, Y)) # set the pygame window namepygame.display.set_caption('Show Text') # create a font object.# 1st parameter is the font file# which is present in pygame.# 2nd parameter is size of the fontfont = pygame.font.Font('freesansbold.ttf', 32) # create a text surface object,# on which text is drawn on it.text = font.render('GeeksForGeeks', True, green, blue) # create a rectangular object for the# text surface objecttextRect = text.get_rect() # set the center of the rectangular object.textRect.center = (X // 2, Y // 2) # infinite loopwhile True:     # completely fill the surface object    # with white color    display_surface.fill(white)     # copying the text surface object    # to the display surface object    # at the center coordinate.    display_surface.blit(text, textRect)     # iterate over the list of Event objects    # that was returned by pygame.event.get() method.    for event in pygame.event.get():         # if event object type is QUIT        # then quitting the pygame        # and program both.        if event.type == pygame.QUIT:             # deactivates the pygame library            pygame.quit()             # quit the program.            quit()         # Draws the surface object to the screen.        pygame.display.update()
Output :  
Now We Will See one of the applications of Displaying the texts but in a different way that is by scrolling the text in 6 different ways on the pygame window.
1. Scrolling the text on top of the Screen.
2. Scrolling the text at the bottom of the screen.
3. Scrolling the text on the left side of the Screen
4. Scrolling the text on the right side of the Screen
5. Scrolling the text in diagonal  from left to right side of the Screen
6. Scrolling the text in diagonal from right side to left side of the Screen.
After Seeing the below Code you can implement your own pattern 
Below is the Implementation
Python
# import pygame module in this programimport pygame # activate the pygame library# initiate pygame and give permission# to use pygame's functionality.pygame.init()  # create the display surface object# (x, y) is the height and width of pygame windowwin=pygame.display.set_mode((500, 500)) # set the pygame window namepygame.display.set_caption("Scrolling Text") # setting the pygame font style(1st parameter)# and size of font(2nd parameter)Font=pygame.font.SysFont('timesnewroman',  30) # define the RGB value for white,# green, yellow, orange colourwhite=(255, 255, 255)yellow=(255, 255, 0)green=(0, 255, 255)orange=(255, 100, 0)done=False # Split the text into letters# 3rd parameter is font colour and# 4th parameter is Font backgroundletter1=Font.render("H", False, orange, yellow)letter2=Font.render("E", False, orange, green)letter3=Font.render("M", False, orange, yellow)letter4=Font.render("A", False, orange, green)letter5=Font.render("N", False, orange, yellow)letter6=Font.render("T", False, orange, green)letter7=Font.render("H", False, orange, yellow) # assigning values to# i and c variablei=0c=1 # infinite loopwhile not done:    if(i>=820):        i=0        c+=1        pygame.time.wait(500)             # completely fill the surface object    # with white color    win.fill(white)    if(c%6==0):           # Scrolling the text in diagonal        # on right side of the Screen.        # copying the text surface object        # to the display surface object         # at the center coordinate.        win.blit(letter1, (662-i, -162+i))        win.blit(letter2, (639-i, -139+i))        win.blit(letter3, (608-i, -108+i))        win.blit(letter4, (579-i, -79+i))        win.blit(letter5, (552-i, -52+i))        win.blit(letter6, (529-i, -29+i))        win.blit(letter7, (500 -i, 0 + i))        i+=80    if(c%6==5):        # Scrolling the text in diagonal on        # left side of the Screen.        win.blit(letter1, (-162+i, -162+i))        win.blit(letter2, (-135+i, -135+i))        win.blit(letter3, (-110+i, -110+i))        win.blit(letter4, (-79+i, -79+i))        win.blit(letter5, (-52+i, -52+i))        win.blit(letter6, (-27+i, -27+i))        win.blit(letter7, (0+i, 0+i))                 # Decides the speed of        # the text on screen        i+=80       if(c%6==4):               # Scrolling the text in        # right side of the Screen.        win.blit(letter1, (480, -180+i))        win.blit(letter2, (480, -150+i))        win.blit(letter3, (480, -120+i))        win.blit(letter4, (480, -90+i))        win.blit(letter5, (480, -60+i))        win.blit(letter6, (480, -30+i))        win.blit(letter7, (480, 0+i))                 # Decides the speed of        # the text on screen        i +=80     if(c%6==3):         # Scrolling the text in left        # side of the Screen.        win.blit(letter1, (0, -180+i))        win.blit(letter2, (0, -150+i))        win.blit(letter3, (0, -120+i))        win.blit(letter4, (0, -90+i))        win.blit(letter5, (0, -60+i))        win.blit(letter6, (0, -30+i))        win.blit(letter7, (0, 0+i))                 # Decides the speed of        # the text on screen        i+=80      if(c%6==1):         win.blit(letter1, (-124+i, 0))        win.blit(letter2, (-102+i, 0))        win.blit(letter3, (-82+i, 0))        win.blit(letter4, (-58+i, 0))        win.blit(letter5, (-40+i, 0))        win.blit(letter6, (-19+i, 0))        win.blit(letter7, (0+i, 0))                 # Decides the speed of        # the text on screen        i +=80       if(c%6==2):              # Scrolling the text in bottom of the Screen.        win.blit(letter1, (-124+i, 470))        win.blit(letter2, (-102+i, 470))        win.blit(letter3, (-82+i, 470))        win.blit(letter4, (-58+i, 470))        win.blit(letter5, (-40+i, 470))        win.blit(letter6, (-19+i, 470))        win.blit(letter7, (0+i, 470))                 # Decides the speed        # of the text on screen        i+=80         # Draws the surface object to the screen.    pygame.display.update()         # iterate over the list of Event objects    # that was returned by pygame.event.get() method    for event in pygame.event.get():        if(event.type==pygame.QUIT):            done=True    #Delay with 5ms    pygame.time.wait(500)pygame.quit()
Output:
1. When text is Scrolling on top of Screen
2. When text is Scrolling on bottom of Screen
3. When text is Scrolling on left side of Screen
4. When text is Scrolling on right side of Screen
5. When text is Scrolling on diagonal from left side of Screen
6. When text is Scrolling on diagonal from right side of Screen
gvsshhrao1998
simmytarika5
kashishsoda
Python-PyGame
python-utility
Technical Scripter 2018
Python
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.