From e4e55f3470eae318aaf0dc9d76133702e5b7a6ce Mon Sep 17 00:00:00 2001 From: Felecarp Date: Wed, 12 May 2021 10:40:38 +0200 Subject: [PATCH 1/2] use Surface.subsurface --- sprite_tutorial/spritesheet.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sprite_tutorial/spritesheet.py b/sprite_tutorial/spritesheet.py index 66819ad..1f328d8 100644 --- a/sprite_tutorial/spritesheet.py +++ b/sprite_tutorial/spritesheet.py @@ -5,9 +5,8 @@ def __init__(self, image): self.sheet = image def get_image(self, frame, width, height, scale, colour): - image = pygame.Surface((width, height)).convert_alpha() - image.blit(self.sheet, (0, 0), ((frame * width), 0, width, height)) + image = self.sheet.subsurface((frame * width, 0, width, height)) image = pygame.transform.scale(image, (width * scale, height * scale)) image.set_colorkey(colour) - return image \ No newline at end of file + return image From 8dca4e5223bf9d85c32c078643720b7f1639092a Mon Sep 17 00:00:00 2001 From: Felecarp Date: Wed, 12 May 2021 10:45:34 +0200 Subject: [PATCH 2/2] Surface.set_colorkey only on parent surface --- sprite_tutorial/sprites.py | 12 ++++++------ sprite_tutorial/spritesheet.py | 3 +-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/sprite_tutorial/sprites.py b/sprite_tutorial/sprites.py index 4039a9c..46fc71f 100644 --- a/sprite_tutorial/sprites.py +++ b/sprite_tutorial/sprites.py @@ -15,11 +15,11 @@ BG = (50, 50, 50) BLACK = (0, 0, 0) - -frame_0 = sprite_sheet.get_image(0, 24, 24, 3, BLACK) -frame_1 = sprite_sheet.get_image(1, 24, 24, 3, BLACK) -frame_2 = sprite_sheet.get_image(2, 24, 24, 3, BLACK) -frame_3 = sprite_sheet.get_image(3, 24, 24, 3, BLACK) +sprite_sheet_image.set_colorkey(BLACK) +frame_0 = sprite_sheet.get_image(0, 24, 24, 3) +frame_1 = sprite_sheet.get_image(1, 24, 24, 3) +frame_2 = sprite_sheet.get_image(2, 24, 24, 3) +frame_3 = sprite_sheet.get_image(3, 24, 24, 3) run = True while run: @@ -40,4 +40,4 @@ pygame.display.update() -pygame.quit() \ No newline at end of file +pygame.quit() diff --git a/sprite_tutorial/spritesheet.py b/sprite_tutorial/spritesheet.py index 1f328d8..e4be750 100644 --- a/sprite_tutorial/spritesheet.py +++ b/sprite_tutorial/spritesheet.py @@ -4,9 +4,8 @@ class SpriteSheet(): def __init__(self, image): self.sheet = image - def get_image(self, frame, width, height, scale, colour): + def get_image(self, frame, width, height, scale): image = self.sheet.subsurface((frame * width, 0, width, height)) image = pygame.transform.scale(image, (width * scale, height * scale)) - image.set_colorkey(colour) return image