diff options
| author | yuzu-eva <stevenhu@web.de> | 2024-09-20 17:21:09 +0200 |
|---|---|---|
| committer | yuzu-eva <stevenhu@web.de> | 2024-09-20 17:21:09 +0200 |
| commit | 6b3eda2ad197d2bd9d434f820f682f13e71c8fbb (patch) | |
| tree | 87f7e5fc451c613082523f088ac4c8d604c9df75 /player.py | |
| parent | 9e795071dc9aca96e513bf37ac941b0fe4aeccba (diff) | |
render shapes and add rotation
Diffstat (limited to 'player.py')
| -rw-r--r-- | player.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/player.py b/player.py new file mode 100644 index 0000000..d629c09 --- /dev/null +++ b/player.py @@ -0,0 +1,31 @@ +import pygame +from constants import * +from circleshape import * + +class Player(CircleShape): + def __init__(self, x, y): + super().__init__(x, y, PLAYER_RADIUS) + self.rotation = 0 + + # in the player class + def triangle(self): + forward = pygame.Vector2(0, 1).rotate(self.rotation) + right = pygame.Vector2(0, 1).rotate(self.rotation + 90) * self.radius / 1.5 + a = self.position + forward * self.radius + b = self.position - forward * self.radius - right + c = self.position - forward * self.radius + right + return [a, b, c] + + def draw(self, screen): + pygame.draw.polygon(screen, "white", self.triangle(), 2) + + def rotate(self, dt): + self.rotation += PLAYER_TURN_SPEED * dt + + def update(self, dt): + keys = pygame.key.get_pressed() + if keys[pygame.K_LEFT]: + self.rotate(-dt) + if keys[pygame.K_RIGHT]: + self.rotate(dt) + |
