-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy pathSpritesheet.py
29 lines (26 loc) · 1.08 KB
/
Spritesheet.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import pygame
class Spritesheet(object):
def __init__(self, filename):
try:
self.sheet = pygame.image.load(filename)
self.sheet = pygame.image.load(filename)
if not self.sheet.get_alpha():
self.sheet.set_colorkey((0, 0, 0))
except pygame.error:
print("Unable to load spritesheet image:", filename)
raise SystemExit
def image_at(self, x, y, scalingfactor, colorkey=None, ignoreTileSize=False,
xTileSize=16, yTileSize=16):
if ignoreTileSize:
rect = pygame.Rect((x, y, xTileSize, yTileSize))
else:
rect = pygame.Rect((x * xTileSize, y * yTileSize, xTileSize, yTileSize))
image = pygame.Surface(rect.size)
image.blit(self.sheet, (0, 0), rect)
if colorkey is not None:
if colorkey == -1:
colorkey = image.get_at((0, 0))
image.set_colorkey(colorkey, pygame.RLEACCEL)
return pygame.transform.scale(
image, (xTileSize * scalingfactor, yTileSize * scalingfactor)
)