aboutsummaryrefslogtreecommitdiff
path: root/src/Player.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/Player.py')
-rw-r--r--src/Player.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/Player.py b/src/Player.py
new file mode 100644
index 0000000..f8ebc06
--- /dev/null
+++ b/src/Player.py
@@ -0,0 +1,48 @@
+from typing import List
+from Direction import DIRECTION
+import pygame
+import settings as Settings
+
+
+def get_sprites(sprite_sheet) -> List:
+ sheet_width, sheet_height = sprite_sheet.get_size()
+ sprite_width, sprite_height = 32, 32
+ rows = sheet_height // sprite_height
+ columns = sheet_width // sprite_width
+ sprites = []
+
+ for row in range(rows):
+ for col in range(columns):
+ x = col * sprite_width
+ y = row * sprite_height
+
+ # Create a new surface for the current sprite and blit it from the sprite sheet onto this new surface
+ new_sprite_surface = pygame.Surface((sprite_width, sprite_height), pygame.SRCALPHA)
+ new_sprite_surface.blit(sprite_sheet, (0, 0), (x, y, x + sprite_width, y +sprite_height))
+
+ # Add this new surface to our list of sprites
+ sprites.append(new_sprite_surface)
+
+ return sprites
+
+
+class Player():
+ def __init__(self, sprite_sheet):
+ self.x = Settings.settings.width // 2;
+ self.y = Settings.settings.height // 2;
+ self.sprite = get_sprites(sprite_sheet)
+ self.speed = 5
+ self.direction = DIRECTION.LEFT
+
+ def draw(self, screen, counter):
+ pos = (self.x, self.y)
+ print(self.direction, DIRECTION.UP)
+ if self.direction == DIRECTION.UP:
+ screen.blit(pygame.transform.rotate(self.sprite[counter // 5], 270), pos)
+ elif self.direction == DIRECTION.DOWN:
+ screen.blit(pygame.transform.rotate(self.sprite[counter // 5], 90), pos)
+ elif self.direction == DIRECTION.RIGHT:
+ screen.blit(pygame.transform.flip(self.sprite[counter // 5], True, False), pos)
+ elif self.direction == DIRECTION.LEFT:
+ screen.blit(self.sprite[counter // 5], pos)
+