Premium Only Content

Pygame tutorial | Learn to code with python | Animations and Tile mapping
In this tutorial, we will be walking through some animation ideas and functions that can help you better understand how to place things on the screen with Pygame in Python.
Got an error? Compare your code below. Angle brackets aren't allow in description so I will replace them with "less than" and "greater than"
main.py code:
import math
import pygame
win_width = 800
win_height = 600
FPS = 60
tilesize = 32
speed = 32
def get_sprite(sheet, x, y, w, h):
sprite = pygame.Surface([w, h])
sprite.blit(sheet, (0, 0), (x, y, w, h))
sprite.set_colorkey('white')
return sprite
animation_list = [
[0, 0],
[32, 0],
[64, 0],
[96, 0],
[128, 0],
[0, 32],
[32, 32],
[64, 32],
[96, 32],
[128, 32],
]
def main():
pygame.init()
screen = pygame.display.set_mode((win_width, win_height), pygame.SCALED)
pygame.display.set_caption('Animation')
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((100, 100, 100))
screen.blit(background, (0, 0))
clock = pygame.time.Clock()
spritesheet = pygame.image.load('numbers.png').convert()
animation_loop = 0
pic_x = 0
pic_y = 0
running = True
while running:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
pic_y -= speed
elif event.key == pygame.K_DOWN:
pic_y += speed
elif event.key == pygame.K_LEFT:
pic_x -= speed
elif event.key == pygame.K_RIGHT:
pic_x += speed
if animation_loop "less than" 9:
pic = get_sprite(spritesheet, animation_list[math.floor(animation_loop)][0], animation_list[math.floor(animation_loop)][1], tilesize, tilesize)
animation_loop += 1
else:
pic = get_sprite(spritesheet, animation_list[math.floor(animation_loop)][0], animation_list[math.floor(animation_loop)][1], tilesize, tilesize)
animation_loop = 0
max_x = win_width / tilesize
max_y = win_height / tilesize
if pic_y "less than" win_height:
if pic_x "less than" win_width:
pic_x += speed
else:
pic_y += speed
pic_x = 0
else:
pic_x = 0
pic_y = 0
# screen.blit(background, (0, 0))
screen.blit(pic, (pic_x, pic_y))
pygame.display.flip()
if __name__ == '__main__':
main()
#python #pygame #animation
-
LIVE
Jeff Ahern
41 minutes agoThe Sunday show!
112 watching -
LIVE
LumpyPotatoX2
4 hours agoStarfield w/MODs | Sub-Sunday - #RumbleGaming
3,684 watching -
LIVE
GritsGG
1 hour agoWin Streaking All Day! Most Wins 3230+ ðŸ§
146 watching -
7:51
scoutthedoggie
3 hours agoAirsoft War Scotland - The Stargate Attack
952 -
16:09
Silver Dragons
1 day agoThese BROKEN Silver & Gold Coins BLEW ME AWAY - CSOA EP. 1
3K6 -
11:25
Damon Imani
1 day ago11 Minutes of Damon DESTROYING The View Hosts | Compilation Vol.15
1.61K5 -
LIVE
FusedAegisTV
15 hours agoOFFICIAL Evo 2025 Day 3 Co-Stream - Las Vegas, NV ∥ Top 8 FINALS! SF6, Tekken 8 & MORE
1,613 watching -
LIVE
itsReel
2 hours agoHAPPY SUNDAY! Picture Perfect, Then Tigger Happy!
62 watching -
17:28
Degenerate Jay
3 days ago $0.12 earnedDoes Batman: Arkham Asylum Need A Remake?
1.88K -
LIVE
C03Games
1 hour agoLiving The Mob Life Ain't Easy (Mafia II)
48 watching