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
Misfits Mania
13 hours ago $9.42 earnedANDREW TATE VS CHASE DEMOOR OFFICIAL OPEN WORKOUT
5,850 watching -
1:09:13
Graham Allen
2 hours agoTrump To Address The Nation! + Candace Bends The Knee, The Cult Turns On Her!
12.6K360 -
LIVE
Wendy Bell Radio
5 hours agoIs She Even An American?
7,184 watching -
1:14:09
Chad Prather
15 hours agoHow to Recognize When God Has Already Answered Your Prayer
13.9K19 -
LIVE
LFA TV
13 hours agoLIVE & BREAKING NEWS! | WEDNESDAY 12/17/25
2,400 watching -
1:33:59
Game On!
19 hours ago $1.53 earnedBIGGEST 2025 College Football Playoff 1st Round BETS NOW!
21.6K2 -
1:04:39
Crypto Power Hour
12 hours ago $4.69 earnedState of Early Stage Crypto Investor Rob Good
39.6K8 -
1:24:24
LIVE WITH CHRIS'WORLD
18 hours agoTHE WAKE UP CALL - 12/17/2025 - Episode 27
20.9K -
27:51
ThinkStory
20 hours agoIT: WELCOME TO DERRY Season 1 Ending Explained!
26.9K -
5:29
Gamazda
14 hours ago $1.82 earnedMetallica - Nothing Else Matters (Live Piano in a Church)
19.2K8