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
TimcastIRL
2 hours agoCandace Owens Implies TPUSA KILLED Charlie Kirk, Claims Failed Bibi Deal Cost MILLIONS | Timcast IRL
15,585 watching -
LIVE
SpartakusLIVE
3 hours agoTrios w/ The BOYS on WZ and then we're teaching Jean ARC RAIDERS
519 watching -
LIVE
SOLTEKGG
1 hour agoLIVE - NOT LOSING A MATCH - NEW PC - !pc
250 watching -
LIVE
ThatStarWarsGirl
1 hour agoTSWG LIVE: Stargate Is BACK! EFAPing Michael Shanks Interview with GUEST!!!
101 watching -
LIVE
MissesMaam
2 hours agoStardew Co-Op 💚✨
35 watching -
1:32:46
Glenn Greenwald
4 hours agoHillary Blames TikTok for Anti-Israel Sentiment; MAGA Sycophants Gain Pentagon Press Access; Who Should Win Anti-Semite of the Year? See the Top 10 Finalists | SYSTEM UPDATE #552
85.9K64 -
LIVE
Flyover Conservatives
21 hours ago100% Chance the Grid Fails: Why No One Is Fixing It (and How Easy It Is) - Tommy Waller | FOC Show
319 watching -
LIVE
JDubGameN
2 hours agoStarlink Network Test Stream! | Road to 100 Followers
89 watching -
2:17:31
The Daily Signal
5 hours ago $2.76 earned🚨BREAKING: Tennessee Congressional Election Results, Minneapolis Police to "Intervene" Against ICE,
7.02K6 -
LIVE
megimu32
1 hour agoON THE SUBJECT: Christmas Vacation Is UNTOUCHABLE!
131 watching