Running sprite animation
dude.py
import pygame
pygame.init()
from player_class import objPlayer
dude = objPlayer()
white = (255, 255, 255) #RGB
screen = pygame.display.set_mode((400, 300))
clock = pygame.time.Clock() #allows us to throttle frame rate
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
dude.left()
if keys[pygame.K_RIGHT]:
dude.right()
screen.fill(white)
sprite = pygame.image.load(dude.draw_sprite()) #("image.png")
screen.blit(sprite, dude.draw_location()) #sprite, (x, y)
pygame.display.flip()
clock.tick(60) #caps at 60fps
pygame.quit()
player_classs.py
class objPlayer:
def __init__(player, x=0, y=0, speed=2): #create event
player.x = x
player.y = y
player.speed = speed
player.sprites = ["run1.png","run2.png","run3.png","run4.png",
"run5.png","run6.png","run7.png"]
player.sprite_counter = 0
def draw_location(player):
return(player.x, player.y) #for screen.blit()
def draw_sprite(player):
current_sprite = player.sprites[player.sprite_counter]
return(current_sprite) #for pygame.image.load()
def left(player):
player.x = player.x - player.speed
player.sprite_counter += 1
player.sprite_counter = player.sprite_counter % len(player.sprites)
def right(player):
player.x = player.x + player.speed
player.sprite_counter += 1
player.sprite_counter = player.sprite_counter % len(player.sprites)
save running sprites below to same project folder as python file, and launch dude.py:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
run.zip (all sprites in a single file download) |
| run1.png | run2.png | run3.png | run4.png | run5.png | run6.png | run7.png |






