Skip to content

Commit 49292b3

Browse files
committed
refactor character class
1 parent 2cc1378 commit 49292b3

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

example.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ class Player(timestep.Character):
1414
def __init__(self, x_pos: float, y_pos: float) -> None:
1515
self.image = pygame.Surface((100, 100))
1616
self.image.fill("red")
17-
super().__init__(x_pos, y_pos, self.image)
17+
self.rect = self.image.get_frect()
18+
super().__init__(x_pos, y_pos, self.image, self.rect)
1819
self.gravity = pygame.math.Vector2(0, 1)
20+
self.vel = pygame.math.Vector2(0, 0)
1921
self.friction = 0.8
2022
self.jumped = False
2123

timestep.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,25 @@
77
class Character:
88
"""Base class for any sprites or objects"""
99

10-
def __init__(self, x_pos: float, y_pos: float, image: pygame.Surface) -> None:
10+
def __init__(self,
11+
x_pos: float,
12+
y_pos: float,
13+
image: pygame.Surface,
14+
rect: pygame.FRect) -> None:
1115
self.image = image
12-
self.rect = self.image.get_frect()
16+
self.rect = rect
1317
self.rect.topleft = x_pos, y_pos
14-
self.vel = pygame.math.Vector2(0, 0)
15-
self.pos = pygame.math.Vector2(self.rect.topleft)
16-
self.prev_pos = self.pos
18+
self.__pos = pygame.math.Vector2(self.rect.topleft)
19+
self.__prev_pos = self.__pos
1720

1821
def update(self) -> None:
1922
"""Override this method with movement, input, collisions etc."""
20-
self.prev_pos = self.__get_rect_pos()
23+
self.__prev_pos = self.__get_rect_pos()
2124

2225
def draw(self, surface: pygame.Surface, alpha: float) -> None:
2326
"""Draw the Character to the screen."""
24-
self.pos = self.prev_pos.lerp(self.__get_rect_pos(), alpha)
25-
surface.blit(self.image, self.pos)
27+
self.__pos = self.__prev_pos.lerp(self.__get_rect_pos(), alpha)
28+
surface.blit(self.image, self.__pos)
2629

2730
def __get_rect_pos(self) -> pygame.math.Vector2:
2831
"""Return the position of the Charater's rect as a Vec2."""
@@ -48,7 +51,7 @@ def update(self) -> None:
4851
pass
4952

5053
def render(self, alpha: float) -> None:
51-
"""Override this function with blits and drawing of sprites"""
54+
"""Override this function with blits and drawing of Characters"""
5255
pass
5356

5457
def run_game(self) -> None:

0 commit comments

Comments
 (0)