aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2024-12-31 17:02:00 -0800
committer3gg <3gg@shellblade.net>2024-12-31 17:02:00 -0800
commitbbc4e34213147f30068a00bb56ebb871114e26dd (patch)
tree85d882d79eb2b39e8c9aac158951d2f7edb24ec3
parente2b76464e847e5c656e6adf6d8e07a054756cda0 (diff)
Tweaks.
-rw-r--r--Demos/Pong/Pong.hs7
1 files changed, 4 insertions, 3 deletions
diff --git a/Demos/Pong/Pong.hs b/Demos/Pong/Pong.hs
index 790a98e..f1b3c74 100644
--- a/Demos/Pong/Pong.hs
+++ b/Demos/Pong/Pong.hs
@@ -56,6 +56,7 @@ data GameObject = GameObject
56 { gameObjectId :: !GameObjectId 56 { gameObjectId :: !GameObjectId
57 , gameObjectSize :: {-# UNPACK #-} !Vector2 57 , gameObjectSize :: {-# UNPACK #-} !Vector2
58 , basis :: {-# UNPACK #-} !Transform2 58 , basis :: {-# UNPACK #-} !Transform2
59 -- TODO: Think about storing steppers separately.
59 , gostep :: Step [GameObject] [GameEvent] GameObject GameObject 60 , gostep :: Step [GameObject] [GameEvent] GameObject GameObject
60 } 61 }
61 62
@@ -121,7 +122,7 @@ update elapsed dt events gos go =
121 122
122-- Ball steppers 123-- Ball steppers
123 124
124stepBall vel = bounceBall vel .> moveBall 125stepBall vel = bounceBall vel .> moveBall -- .> clamp
125 126
126bounceBall :: Vector2 -> Step [GameObject] [GameEvent] GameObject (Vector2, GameObject) 127bounceBall :: Vector2 -> Step [GameObject] [GameEvent] GameObject (Vector2, GameObject)
127bounceBall vel = step $ \_ dt gos events ball -> 128bounceBall vel = step $ \_ dt gos events ball ->
@@ -192,11 +193,11 @@ movePlayer' dir = step $ \_ dt _ _ go -> (translate (dir * dt) go, movePlayer' d
192 193
193clamp :: Step s e GameObject GameObject 194clamp :: Step s e GameObject GameObject
194clamp = spure $ \go -> 195clamp = spure $ \go ->
195 let p' = vec2 (clamp' x s (1 - s)) y 196 let p' = vec2 (clamp' x sx (1 - sx)) y
196 (Vector2 x y) = position go 197 (Vector2 x y) = position go
197 clamp' x a b 198 clamp' x a b
198 | x < a = a 199 | x < a = a
199 | x > b = b 200 | x > b = b
200 | otherwise = x 201 | otherwise = x
201 (Vector2 s _) = padSize 202 (Vector2 sx _) = gameObjectSize go
202 in setPosition p' go 203 in setPosition p' go