How to move an image with the mouse in PyGame?

26 Nov, 2021
Pygame is a Python library that is used to create cross-platform video games. The games created by Pygame can be easily run through any of the input devices such as a mouse, keyboard, and joystick. Do you want to make a game that runs through mouse controls? Don’t you know how to move the image with the mouse in it? Don’t worry, what you need to do is to declare the two values, i.e., running and moving. Once declared values, set what your app should do when it is in running state. Read the article given below to know more in detail.
Step 1: First, import the library pygame.
import pygame
from pygame.locals import *
Step 2: Now, take the colors as input that we want to use in the game.
color_1 = #RGB value of color 1
color_2 = #RGB value of color 2
color_n = #RGB value of color n
Step 3: Then, construct a GUI game.
pygame.init()
Step 4: Further, set the dimensions of your GUI game. 
w, h = #Width dimension, #Height dimension
screen = pygame.display.set_mode((w, h))
Step 5: Next, take the image as input which you want to move with the mouse
img = pygame.image.load('#Enter the image')
img.convert()
Step 6: Moreover, you can make your image look attractive by adding rectangle borders around it.
rect = img.get_rect()
rect.center = w//2, h//2
Step 7: Later on, set the running value for running the game and moving value for moving the image.
running = True
moving = False
Step 8: Set the things which you want your app to do when in running state.
while running:
   for event in pygame.event.get():
Step 8.1: Once the app is in a running state, make it quit if the user wants to quit.
       if event.type == QUIT:
           running = False
Step 8.2: In case, the user doesn’t want to quit, move your image around the dimensions of the GUI app.
       elif event.type == MOUSEBUTTONDOWN:
          if rect.collidepoint(event.pos):
              moving = True  
Step 8.3: Next, set the moving value as False if you want to move the image only with the mouse click else set moving as True if you want to move the image without the mouse click.
       elif event.type == MOUSEBUTTONUP:          
           moving = False
Step 8.4: Further, set your image in a moving state if it has been once moved.
       elif event.type == MOUSEMOTION and moving:
           rect.move_ip(event.rel)  
Step 9: Next, you need to set the screen color and image on the screen.
   screen.fill(YELLOW)
   screen.blit(img, rect)
Step 10: Further, make your image look attractive by constructing the border to the image.
   pygame.draw.rect(screen, BLUE, rect, 2)
Step 11: Furthermore, update the changes done in the GUI game.
   pygame.display.update()
Step 12: Finally, quit the GUI game.
pygame.quit()
Below is the implementation.
Python
# Python program to move the image# with the mouse # Import the library pygameimport pygamefrom pygame.locals import * # Take colors inputYELLOW = (255, 255, 0)BLUE = (0, 0, 255) # Construct the GUI gamepygame.init() # Set dimensions of game GUIw, h = 640, 350screen = pygame.display.set_mode((w, h)) # Take image as inputimg = pygame.image.load('geek.jpg')img.convert() # Draw rectangle around the imagerect = img.get_rect()rect.center = w//2, h//2 # Set running and moving valuesrunning = Truemoving = False # Setting what happens when game# is in running statewhile running:         for event in pygame.event.get():         # Close if the user quits the        # game        if event.type == QUIT:            running = False         # Making the image move        elif event.type == MOUSEBUTTONDOWN:            if rect.collidepoint(event.pos):                moving = True         # Set moving as False if you want        # to move the image only with the        # mouse click        # Set moving as True if you want        # to move the image without the        # mouse click        elif event.type == MOUSEBUTTONUP:            moving = False         # Make your image move continuously        elif event.type == MOUSEMOTION and moving:            rect.move_ip(event.rel)     # Set screen color and image on screen    screen.fill(YELLOW)    screen.blit(img, rect)     # Construct the border to the image    pygame.draw.rect(screen, BLUE, rect, 2)     # Update the GUI pygame    pygame.display.update() # Quit the GUI gamepygame.quit()
Output:
kalrap615
Picked
Python-PyGame
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Python Classes and Objects
Python OOPs Concepts
Introduction To PYTHON
How to drop one or multiple columns in Pandas Dataframe
Python | os.path.join() method
Check if element exists in list in Python
How To Convert Python Dictionary To JSON?
Python | Get unique values from a list
Python | datetime.timedelta() function