First of a serie of posts with modular components for pygame, with ready to be used and easy to modify to adapt code for your own projects.
The first components is a module to move a rectangle.
Moving a rectangle
import pygame, sys, random from pygame.locals import * # Set up pygame. pygame.init() mainClock = pygame.time.Clock() # Set up the window. WINDOWWIDTH = 400 WINDOWHEIGHT = 400 windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT), 0, 32) pygame.display.set_caption('Collision Detection') def movements(): player = pygame.Rect(0, 0, 20, 20) moveLeft = False moveRight = False moveUp = False moveDown = False MOVESPEED = 1 while True: # Check for events. for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: # Change the keyboard variables. if event.key == K_LEFT or event.key == K_a: moveRight = False moveLeft = True if event.key == K_RIGHT or event.key == K_d: moveLeft = False moveRight = True if event.key == K_UP or event.key == K_w: moveDown = False moveUp = True if event.key == K_DOWN or event.key == K_s: moveUp = False moveDown = True if event.type == KEYUP: if event.key == K_ESCAPE: pygame.quit() sys.exit() if event.key == K_LEFT or event.key == K_a: moveLeft = False if event.key == K_RIGHT or event.key == K_d: moveRight = False if event.key == K_UP or event.key == K_w: moveUp = False if event.key == K_DOWN or event.key == K_s: moveDown = False # Draw the white background onto the surface. windowSurface.fill((255, 255, 255)) # Move the player. if moveDown and player.bottom < WINDOWHEIGHT: player.top += MOVESPEED if moveUp and player.top > 0: player.top -= MOVESPEED if moveLeft and player.left > 0: player.left -= MOVESPEED if moveRight and player.right < WINDOWWIDTH: player.right += MOVESPEED # Draw the player onto the surface. pygame.draw.rect(windowSurface, (0, 0, 0), player) # Draw the window onto the screen. pygame.display.update() mainClock.tick(120) if __name__ == "__main__": movements()
Use this on his own or importing it from a main file like this:
from components import move_rectangle as movements movements.movements()
Subscribe to the newsletter for updates
Tkinter templates
My youtube channel
Twitter: @pythonprogrammi - python_pygame