feat: add connected indicator on car
This commit is contained in:
@@ -45,3 +45,6 @@ class Camera:
|
|||||||
screen_delta: Vec = Vec(dx, dy) * self.zoom * self.UNIT_RATIO
|
screen_delta: Vec = Vec(dx, dy) * self.zoom * self.UNIT_RATIO
|
||||||
screen_pos: Vec = self.car_screen_pos + screen_delta
|
screen_pos: Vec = self.car_screen_pos + screen_delta
|
||||||
return screen_pos
|
return screen_pos
|
||||||
|
|
||||||
|
def size2screen(self, size: float) -> float:
|
||||||
|
return size * self.zoom * self.UNIT_RATIO
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class Car:
|
|||||||
MAX_BACK_SPEED = -3
|
MAX_BACK_SPEED = -3
|
||||||
ROTATE_SPEED = 1
|
ROTATE_SPEED = 1
|
||||||
COLOR = (230, 150, 80)
|
COLOR = (230, 150, 80)
|
||||||
|
CTRL_COLOR = (80, 230, 150)
|
||||||
WIDTH = 0.4
|
WIDTH = 0.4
|
||||||
LENGTH = 0.6
|
LENGTH = 0.6
|
||||||
COLLISION_MARGIN = 0.4
|
COLLISION_MARGIN = 0.4
|
||||||
@@ -82,6 +83,14 @@ class Car:
|
|||||||
pts = [camera.world2screen(p) for p in pts]
|
pts = [camera.world2screen(p) for p in pts]
|
||||||
pygame.draw.polygon(surf, self.COLOR, pts)
|
pygame.draw.polygon(surf, self.COLOR, pts)
|
||||||
|
|
||||||
|
if self.controller.is_connected:
|
||||||
|
pygame.draw.circle(
|
||||||
|
surf,
|
||||||
|
self.CTRL_COLOR,
|
||||||
|
camera.world2screen(self.pos),
|
||||||
|
camera.size2screen(self.WIDTH / 4),
|
||||||
|
)
|
||||||
|
|
||||||
def get_corners(self) -> list[Vec]:
|
def get_corners(self) -> list[Vec]:
|
||||||
u: Vec = self.direction * self.LENGTH / 2
|
u: Vec = self.direction * self.LENGTH / 2
|
||||||
v: Vec = self.direction.perp * self.WIDTH / 2
|
v: Vec = self.direction.perp * self.WIDTH / 2
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ class RemoteController:
|
|||||||
self.client_thread: Optional[threading.Thread] = None
|
self.client_thread: Optional[threading.Thread] = None
|
||||||
self.client: Optional[socket.socket] = None
|
self.client: Optional[socket.socket] = None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_connected(self) -> bool:
|
||||||
|
return self.client is not None
|
||||||
|
|
||||||
def wait_for_connections(self):
|
def wait_for_connections(self):
|
||||||
self.server.bind(("", self.port))
|
self.server.bind(("", self.port))
|
||||||
self.server.listen(1)
|
self.server.listen(1)
|
||||||
|
|||||||
Reference in New Issue
Block a user