From cc3480c0c07e0bc8db1988f68eaf5e591e3b46b8 Mon Sep 17 00:00:00 2001 From: nek0 Date: Mon, 14 May 2018 18:00:18 +0200 Subject: [PATCH] nonsticky walls --- src/Test.hs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Test.hs b/src/Test.hs index c990472..88c21f8 100644 --- a/src/Test.hs +++ b/src/Test.hs @@ -380,12 +380,14 @@ checkBoundsCollision2 where vel@(V2 vr vc) = fmap (/ dt) (next - pre) colltr - | vr > 0 = (((fromIntegral (floor pr :: Int)) + minr - 0.15) - pr) / vr - | vr < 0 = (((fromIntegral (floor pr :: Int)) + maxr + 0.15) - pr) / vr + | vr > 0 && prr <= maxr = (((fromIntegral (floor pr :: Int)) + minr - 0.15) - pr) / vr + | vr < 0 && prr >= minr = (((fromIntegral (floor pr :: Int)) + maxr + 0.15) - pr) / vr | otherwise = dt colltc - | vc > 0 = (((fromIntegral (floor pc :: Int)) + minc - 0.15) - pc) / vc - | vc < 0 = (((fromIntegral (floor pc :: Int)) + maxc + 0.15) - pc) / vc + | vc > 0 && prc <= maxc = (((fromIntegral (floor pc :: Int)) + minc - 0.15) - pc) / vc + | vc < 0 && prc >= minc = (((fromIntegral (floor pc :: Int)) + maxc + 0.15) - pc) / vc | otherwise = dt inrow = pr > minr && pr < maxr incol = pc > minc && pc < maxc + prr = pr - (fromIntegral $ floor pr) + prc = pc - (fromIntegral $ floor pc)