Adding Collisions Using pygame.Rect.colliderect in Pygame - GeeksforGeeks

24 Sep, 2021
Prerequisite: Drawing shapes in Pygame, Introduction to pygame
In this article, we are going to use pygame.Rect.colliderect for adding collision in a shape using Pygame in Python.
We can easily add collisions in Pygame shapes using the colliderect( ). For this, we are going to draw two rectangles then we will check if the rectangles are colliding or not.
Syntax: pygame.Rect.colliderect(rect1, rect2)
Parameters: It will take two rects as its parameters.
Returns: Returns true if any portion of either rectangle overlap.
Python3
# Importing the pygame moduleimport pygamefrom pygame.locals import * # Initiate pygame and give permission# to use pygame's functionalitypygame.init() # Create a display surface object# of specific dimensionwindow = pygame.display.set_mode((600, 600)) # Creating a new clock object to# track the amount of timeclock = pygame.time.Clock()  # Creating a new rect for first objectplayer_rect = Rect(200, 500, 50, 50) # Creating a new rect for second objectplayer_rect2 = Rect(200, 0, 50, 50) # Creating variable for gravitygravity = 4 # Creating a boolean variable that# we will use to run the while looprun = True # Creating an infinite loop# to run our gamewhile run:     # Setting the framerate to 60fps    clock.tick(60)     # Adding gravity in player_rect2    player_rect2.bottom += gravity     # Checking if player is colliding    # with platform or not using the    # colliderect() method.    # It will return a boolean value    collide = pygame.Rect.colliderect(player_rect, p                                      layer_rect2)     # If the objects are colliding    # then changing the y coordinate    if collide:        player_rect2.bottom = player_rect.top     # Drawing player rect    pygame.draw.rect(window, (0,   255,   0),                     player_rect)    # Drawing player rect2    pygame.draw.rect(window, (0,   0,   255),                     player_rect2)     # Updating the display surface    pygame.display.update()     # Filling the window with white color    window.fill((255, 255, 255))
Output:
Python3
# Importing the pygame moduleimport pygamefrom pygame.locals import * # Initiate pygame and give permission# to use pygame's functionalitypygame.init() # Create a display surface object# of specific dimensionwindow = pygame.display.set_mode((600, 600)) # Creating a new clock object to# track the amount of timeclock = pygame.time.Clock()  # Creating a new rect for first objectplayer_rect = Rect(200, 500, 50, 50) # Creating a new rect for second objectplayer_rect2 = Rect(200, 0, 50, 50)  # Creating a boolean variable that# we will use to run the while looprun = True # Speed for the objectsspeed_a = 8speed_b = -7 # Creating an infinite loop# to run our gamewhile run:     # Setting the framerate to 60fps    clock.tick(60)     # Adding speed in player rects    player_rect.bottom += speed_a    player_rect2.top += speed_b     # Checking if player is colliding    # with platform or not using the    # colliderect() method.    # It will return a boolean value    collide = pygame.Rect.colliderect(player_rect,                                      player_rect2)     # If the objects are colliding    # then changing the speed direction    if collide:        speed_a *= -1        speed_b *= -1     # Changing the direction if the objects    # goes outside the window    if player_rect.top<0 or player_rect.bottom > 600:        speed_a *= -1    if player_rect2.bottom > 600 or player_rect2.top<0:        speed_b *= -1         # Drawing player rect    pygame.draw.rect(window, (0,   255,   0),                     player_rect)    # Drawing player rect2    pygame.draw.rect(window, (0,   0,   255),                     player_rect2)     # Updating the display surface    pygame.display.update()     # Filling the window with white color    window.fill((255, 255, 255))
Output:
sweetyty
simranarora5sos
Python-PyGame
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Python Dictionary
How to Install PIP on Windows ?
Read a file line by line in Python
Enumerate() in Python
Iterate over a list in Python
Different ways to create Pandas Dataframe
Python program to convert a list to string
Create a Pandas DataFrame from Lists
Python String | replace()
Reading and Writing to text files in Python