Using Sprites
Sprites have many built in features in pygame, such as collision detection.
Simple Sprite
#Import statements are to enable the code to use the functions from the library
import pygame
import sys
import os
#initialize pygame & window
os.environ["SDL_VIDEO_CENTERED"] = "1"
pygame.init()
SCREENWIDTH = 500
SCREENHEIGHT = 500
SCREENSIZE = [SCREENWIDTH, SCREENHEIGHT]
SCREEN = pygame.display.set_mode(SCREENSIZE)
COLOR=[0,0,0]
b = pygame.sprite.Sprite() # create sprite
b.image = pygame.image.load("hero.png").convert() # load hero image
b.rect = b.image.get_rect()# use image extent values
b.rect.topleft = [0, 0] # put the hero in the top left corner
#game loop
while True:
SCREEN.fill(COLOR)
for events in pygame.event.get(): #get all pygame events
if events.type == pygame.QUIT: #if event is quit then shutdown window and program
pygame.quit()
sys.exit()
SCREEN.blit(b.image, b.rect)
pygame.display.update()
Example with movement
#Import statements are to enable the code to use the functions from the library
import pygame
import sys
import os
#initialize pygame & window
os.environ["SDL_VIDEO_CENTERED"] = "1"
pygame.init()
SCREENWIDTH = 500
SCREENHEIGHT = 500
SCREENSIZE = [SCREENWIDTH, SCREENHEIGHT]
SCREEN = pygame.display.set_mode(SCREENSIZE)
COLOR=[0,0,0]
pos = [0,0] # position of sprite on the screen
b = pygame.sprite.Sprite() # create sprite
b.image = pygame.image.load("hero.png").convert() # load hero image
b.rect = b.image.get_rect()# use image extent values
b.rect.topleft = pos # put the hero at position
#game loop
while True:
SCREEN.fill(COLOR)
for events in pygame.event.get(): #get all pygame events
if events.type == pygame.KEYDOWN:
if events.key == pygame.K_LEFT:
pos[0]=pos[0]-10
elif events.key == pygame.K_RIGHT:
pos[0]=pos[0]+10
elif events.key == pygame.K_UP:
pos[1]=pos[1]-10
elif events.key == pygame.K_DOWN:
pos[1]=pos[1]+10
b.rect.topleft = pos
if events.type == pygame.QUIT: #if event is quit then shutdown window and program
pygame.quit()
sys.exit()
SCREEN.blit(b.image, b.rect)
pygame.display.update()