diff --git a/main.py b/main.py index 7810307..ef99a1d 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,9 @@ import pygame as pg from math import pi from rigidbody import * -from collider import LineCollider, CircleCollider +from collider import RectCollider + +from tools import debug class Ball: @@ -46,13 +48,14 @@ def main(): pg.init() clock=pg.time.Clock() screen = pg.display.set_mode((500,500)) + debug.enabled = True + debug._screen = screen physics = PhysicsSystem() - linecollider = RectCollider((495, 1)) - ball_transform = Transform(position=pg.Vector2(250,250), rotation=pi/8.0) - square_transform = Transform(position=pg.Vector2(250, 100)) + ball_transform = Transform(position=pg.Vector2(250,440), rotation=pi/8.0) + square_transform = Transform(position=pg.Vector2(250, 460)) #ball2_transform = Transform(position=pg.Vector2(250, 50)) ball = Square(ball_transform, 20) @@ -133,6 +136,7 @@ def main(): physics.update(dt) ball.draw(screen) ball2.draw(screen) + debug.debug() #ball3.draw(screen) pg.display.flip() for event in pg.event.get(): diff --git a/tools.py b/tools.py index 9eb81cc..7f6d2e9 100644 --- a/tools.py +++ b/tools.py @@ -1,7 +1,6 @@ import pygame as pg from queue import Queue - def _debug(fn): def wrapper(self: 'Debug', *args, **kwargs): if not self.enabled: return @@ -48,4 +47,17 @@ class Debug: self._debug_queue.put(_draw_lines) + @_debug + def draw_collider(self, collider, t): + def _draw_collider(): + h = collider.hull(t) + pg.draw.lines( + self._screen, + color=(0,255,255), + points=[v for v in h.vertices()], + closed=True + ) + self._debug_queue.put(_draw_collider) + + debug = Debug()