52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
import pygame as pg
|
|
from queue import Queue
|
|
|
|
|
|
def _debug(fn):
|
|
def wrapper(self: 'Debug', *args, **kwargs):
|
|
if not self.enabled: return
|
|
fn(self, *args, **kwargs)
|
|
return wrapper
|
|
|
|
class Debug:
|
|
|
|
def __init__(self, enabled=False):
|
|
self.enabled = enabled
|
|
self._screen = None
|
|
self._debug_queue = Queue()
|
|
|
|
|
|
def debug(self):
|
|
while not self._debug_queue.empty():
|
|
self._debug_queue.get()()
|
|
|
|
@_debug
|
|
def draw_lines(self, points) -> None:
|
|
def _draw_lines():
|
|
if len(points) > 1:
|
|
pg.draw.lines(
|
|
self._screen,
|
|
(255,0,255),
|
|
False,
|
|
points=points,
|
|
width=3
|
|
)
|
|
for point in points:
|
|
pg.draw.circle(
|
|
self._screen,
|
|
(255,0,255),
|
|
point,
|
|
2
|
|
)
|
|
if len(points) > 0:
|
|
pg.draw.circle(
|
|
self._screen,
|
|
(255,0,255),
|
|
points[0],
|
|
2
|
|
)
|
|
self._debug_queue.put(_draw_lines)
|
|
|
|
|
|
debug = Debug()
|