From a23e8c074efdde39ba0e284cc27f1aa41b4efce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Sun, 31 Jan 2021 10:04:41 +0100 Subject: Add correct collisions --- pong/pong.tdy | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'pong/pong.tdy') diff --git a/pong/pong.tdy b/pong/pong.tdy index e1eb210..9778dfc 100644 --- a/pong/pong.tdy +++ b/pong/pong.tdy @@ -46,8 +46,14 @@ or := fn a: bool, b: bool -> bool { } rect_overlap := fn ax: float, ay: float, aw: float, ah: float, bx: float, by: float, bw: float, bh: float -> bool { - dx := abs(ax - bx) + (-aw - bw) / 2. - dy := abs(ay - by) + (-ah - bh) / 2. + acx := ax + aw / 2. + acy := ay + ah / 2. + + bcx := bx + bw / 2. + bcy := by + bh / 2. + + dx := abs(acx - bcx) + (-aw - bw) / 2. + dy := abs(acy - bcy) + (-ah - bh) / 2. ret and(dx < 0., dy < 0.) } @@ -85,6 +91,7 @@ update := fn state: State { draw := fn state: State { clear() + draw_rectangle(state.p1.paddle.x, state.p1.paddle.y, 0.2, 1.) draw_rectangle(state.p2.paddle.x, state.p2.paddle.y, 0.2, 1.) -- cgit v1.2.1