added circle case for collider rendering
This commit is contained in:
28
tools.py
28
tools.py
@@ -1,6 +1,9 @@
|
|||||||
import pygame as pg
|
import pygame as pg
|
||||||
from queue import Queue
|
from queue import Queue
|
||||||
|
|
||||||
|
from collider.types import CircleCollider, ConvexCollider, BaseCollider
|
||||||
|
from transform import Transform
|
||||||
|
|
||||||
def _debug(fn):
|
def _debug(fn):
|
||||||
def wrapper(self: 'Debug', *args, **kwargs):
|
def wrapper(self: 'Debug', *args, **kwargs):
|
||||||
if not self.enabled: return
|
if not self.enabled: return
|
||||||
@@ -48,15 +51,24 @@ class Debug:
|
|||||||
|
|
||||||
|
|
||||||
@_debug
|
@_debug
|
||||||
def draw_collider(self, collider, t):
|
def draw_collider(self, collider: BaseCollider, t: Transform):
|
||||||
def _draw_collider():
|
def _draw_collider():
|
||||||
h = collider.hull(t)
|
if isinstance(collider, ConvexCollider):
|
||||||
pg.draw.lines(
|
h = collider.hull(t)
|
||||||
self._screen,
|
pg.draw.lines(
|
||||||
color=(0,255,255),
|
self._screen,
|
||||||
points=[v for v in h.vertices()],
|
color=(0,255,255),
|
||||||
closed=True
|
points=[v for v in h.vertices()],
|
||||||
)
|
closed=True
|
||||||
|
)
|
||||||
|
if isinstance(collider, CircleCollider):
|
||||||
|
pg.draw.circle(
|
||||||
|
self._screen,
|
||||||
|
color=(0,255,255),
|
||||||
|
center=t.position,
|
||||||
|
radius=collider.radius,
|
||||||
|
width=1
|
||||||
|
)
|
||||||
self._debug_queue.put(_draw_collider)
|
self._debug_queue.put(_draw_collider)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user