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
-
19:53
MetatronHistory
15 hours agoRome VS Greece - Ultimate Clash of Civilizations Explained
17K6 -
LIVE
VapinGamers
48 minutes agoTools of the Trade - EP12 The Art of Story Telling with MidnightinTheMountains - !rumbot !music
273 watching -
2:05:43
LFA TV
19 hours agoRUMBLE RUNDOWN WEEK 7 with SHAWN FARASH 11.22.25 9AM
115K6 -
53:25
X22 Report
3 hours agoMr & Mrs X - Trump Is Using The Same Tactic As Our Founding Fathers To Rebuild America - EP 17
54.9K9 -
LIVE
ttvglamourx
41 minutes agoGLAMOURX VS CALL OF DUTY LOBBIES !DISCORD
123 watching -
LIVE
DannyStreams
2 hours agoSaturday Morning Tarky
107 watching -
1:12:53
Wendy Bell Radio
6 hours agoPet Talk With The Pet Doc
18.8K19 -
LIVE
CHiLi XDD
47 minutes agoFF7 Remake | Materia Hunting at its finest!
164 watching -
33:49
SouthernbelleReacts
19 hours ago $0.99 earnedNOT THE GOPHER ðŸ˜ðŸ¤£ | First Time Watching Caddyshack
7.53K1 -
26:19
marcushouse
3 hours ago $4.15 earnedStarship Super Heavy Just Blew Itself Apart! 🤯 What Happened Here!?
12.6K6