From 66b8f54a07567d4df2a07c7329c49e48c1b589eb Mon Sep 17 00:00:00 2001 From: nek0 Date: Wed, 29 Mar 2017 00:44:36 +0200 Subject: [PATCH] better camera handling --- examples/example04.hs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/examples/example04.hs b/examples/example04.hs index 4e179bf..9c926f9 100644 --- a/examples/example04.hs +++ b/examples/example04.hs @@ -135,7 +135,8 @@ drawInit = do ad <- get ud <- getAffection process (nodeGraph ud M.! "sink") - present (GeglRectangle 0 0 3289 600) (foreground ud) True + present (GeglRectangle (round $ cameraX ud) 0 800 600) (foreground ud) True + render Nothing Nothing draw :: Affection UserData () draw = do @@ -181,14 +182,10 @@ update dt = do "rect" (actors ud) let { - offset | xpos - cameraX ud > 750 && cameraX ud + leg < 2489 = - case code of - SDL.KeycodeRight -> leg - _ -> 0 - | xpos - cameraX ud < 50 && cameraX ud - leg > 0 = - case code of - SDL.KeycodeLeft -> (-leg) - _ -> 0 + offset | xpos - cameraX ud > 750 && cameraX ud + leg < 2489 && code == SDL.KeycodeRight = + leg + | xpos - cameraX ud < 50 && cameraX ud - leg > 0 && code == SDL.KeycodeLeft = + (-leg) | otherwise = 0 } putAffection ud