moveObjs :: [P.Platform] -> (Player,Bool) -> (Player,Bool)
moveObjs ((P.MoveablePlatform _ _ r (dx',dy') _ fwd):rs) (p, b)
    | r `collides` (y +~ 3 $ p^.bounding) = ((bounding.x +~ dx) . (velocity._2 .~ dy) $ p,True)
    | otherwise = moveObjs rs (p,b)
        where
            dx = if fwd then dx' else dx'*(-1)
            dy = if fwd then dy' else dy'*(-1)
moveObjs :: [P.Platform] -> (Player,Bool) -> (Player,Bool)
moveObjs ((P.MoveablePlatform _ _ r (dx',dy') _ fwd):rs) (p, b)
    | r `collides` (y +~ 3 $ p^.bounding) = ((bounding.x +~ dx) . (velocity._2 .~ dy) $ p,True)
    | otherwise = moveObjs rs (p,b)
        where
            dx = if fwd then dx' else dx'*(-1)
            dy = if fwd then dy' else dy'*(-1)
moveObjs ((P.MoveablePlatform _ _ r (dx',dy') _ fwd):rs) (p, b)
    | r `collides` (y +~ 3 $ p^.bounding) = ((bounding.x +~ dx) . (velocity._2 .~ dy) $ p,True)
    | otherwise = moveObjs rs (p,b)
        where
            dx = if fwd then dx' else dx'*(-1)
            dy = if fwd then dy' else dy'*(-1)