aboutsummaryrefslogtreecommitdiff
path: root/src/Game
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2023-05-28 21:41:53 +0100
committerJuan J. Martinez <jjm@usebox.net>2023-05-28 22:13:18 +0100
commit41876fd5e296a967a5d2ad08e54a9f69651e083c (patch)
tree6b66960ce5c88767ca8ae6c42da368a58005f7ad /src/Game
parentf886dc2f03a75b12749ad029134b70c346aea194 (diff)
downloadspace-plat-hs-41876fd5e296a967a5d2ad08e54a9f69651e083c.tar.gz
space-plat-hs-41876fd5e296a967a5d2ad08e54a9f69651e083c.zip
Fix timing when jumping up in some cases
Diffstat (limited to 'src/Game')
-rw-r--r--src/Game/Entities/Tracker.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Game/Entities/Tracker.hs b/src/Game/Entities/Tracker.hs
index 80b8574..9baac80 100644
--- a/src/Game/Entities/Tracker.hs
+++ b/src/Game/Entities/Tracker.hs
@@ -16,7 +16,12 @@ updateTracker updateRunner facingPlayerLower isBlocked ent = do
e <- updateRunner ent
facing <- facingPlayerLower e
pure $
- if facing && e.gravity == gravityOff && not (isBlocked (ent.x + 8) (ent.y - 1)) && isBlocked (ent.x + 8) ent.y
+ if facing
+ && e.gravity == gravityOff
+ && not (isBlocked (isBlockedX e) (e.y - 1))
+ && not (isBlocked (e.x + 8) (e.y - 1))
+ && isBlocked (isBlockedX e) e.y
+ && isBlocked (e.x + 8) e.y
then
e
{ gravity = gravityUp,
@@ -24,3 +29,6 @@ updateTracker updateRunner facingPlayerLower isBlocked ent = do
actions = [ActionAddEffect ent.x (ent.y + 8) "dust"]
}
else e
+ where
+ isBlockedX :: Entity -> Int
+ isBlockedX e = if e.dir == DirLeft then e.x + 16 else e.x - 1