summaryrefslogtreecommitdiff
path: root/player.py
diff options
context:
space:
mode:
authoryuzu-eva <stevenhu@web.de>2024-09-20 17:21:09 +0200
committeryuzu-eva <stevenhu@web.de>2024-09-20 17:21:09 +0200
commit6b3eda2ad197d2bd9d434f820f682f13e71c8fbb (patch)
tree87f7e5fc451c613082523f088ac4c8d604c9df75 /player.py
parent9e795071dc9aca96e513bf37ac941b0fe4aeccba (diff)
render shapes and add rotation
Diffstat (limited to 'player.py')
-rw-r--r--player.py31
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)
+