feat: add basic controls

This commit is contained in:
2025-10-18 02:02:37 +02:00
parent 9c5f39b669
commit 6805e69509
3 changed files with 66 additions and 1 deletions

View File

@@ -1,8 +1,42 @@
from math import radians
from src.vec import Vec
class Car:
MAX_SPEED = 0.05
MAX_BACK_SPEED = -0.025
ROTATE_SPEED = radians(1)
def __init__(self, pos: Vec, direction: Vec) -> None:
self.pos: Vec = pos
self.direction: Vec = direction
self.speed: float = 0
self.forward: bool = False
self.backward: bool = False
self.left: bool = False
self.right: bool = False
def update(self):
if self.forward:
self.speed += 0.001
self.speed = min(self.MAX_SPEED, self.speed)
if self.backward:
self.speed -= 0.002
self.speed = max(self.MAX_BACK_SPEED, self.speed)
rotate_angle: float = 0
if self.left:
rotate_angle -= self.ROTATE_SPEED
if self.right:
rotate_angle += self.ROTATE_SPEED
# if self.backward:
# rotate_angle *= -1
if rotate_angle != 0:
self.direction = self.direction.rotate(rotate_angle)
self.speed *= 0.98
self.pos += self.direction * self.speed