animation: made walk speed more easily adjustable
authorLukas Krickl <lukas@krickl.dev>
Sun, 2 Feb 2025 09:58:41 +0000 (10:58 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sun, 2 Feb 2025 09:58:41 +0000 (10:58 +0100)
src/animation.s
src/defs.s
src/state.s

index 76b49f29c7f6a359a881dfd1dc2fe9f1834cc244..9abf931f36b74c7fcabf25d54ed37b20bd1ca7b0 100644 (file)
@@ -6,24 +6,24 @@
   ; sm_param[0]: frames to walk for
 anim_walk_north:
   inc bc ; bc = actor y
-  ld d, 0xFF ; walk back 
+  ld d, 0xFF & 0 - ANIM_WALK_SPEED ; walk back 
   jp anim_walk_generic 
 
 anim_walk_south:
   inc bc ; bc = actor y
-  ld d, 1 ; walk forward 
+  ld d, ANIM_WALK_SPEED ; walk forward 
   jp anim_walk_generic 
 
 anim_walk_east:
   inc bc
   inc bc ; bc = actor x
-  ld d, 1 ; walk forward
+  ld d, ANIM_WALK_SPEED ; walk forward
   jp anim_walk_generic
 
 anim_walk_west:
   inc bc
   inc bc ; bc = actor x
-  ld d, 0xFF ; walk back 
+  ld d, 0xFF & 0 - ANIM_WALK_SPEED ; walk back 
   jp anim_walk_generic
 
   ; generic version of anim walk
index bf16bbfa0ecada76e33671c1c7452512b6dd0034..c94acac45222864502ba694abda6491619efd8b2 100644 (file)
@@ -55,7 +55,9 @@
 #define ANIM_STEP_UP 0xFF
 #define ANIM_STEP_RIGHT 1
 
-#define ANIM_PLAYER_WALK_FRAMES 16
+#define ANIM_WALK_SPEED 1
+#define ANIM_TILE_SIZE 16
+#define ANIM_PLAYER_WALK_FRAMES (ANIM_TILE_SIZE / ANIM_WALK_SPEED) 
 
 ; actor type enum
 .se 0
index bb62b892cd596c4bee76d31a931437a4402b8b30..e176932ccbabcfb98151852878ac277d7026ae56 100644 (file)
@@ -49,7 +49,7 @@ sm_player_poll_inputs:
     ld [hl], a ; set param[0]
   
     ; perform collision check
-    ld d, ANIM_PLAYER_WALK_FRAMES
+    ld d, ANIM_TILE_SIZE 
     ld e, 0
     call player_collision_check
 
@@ -67,7 +67,7 @@ sm_player_poll_inputs:
 
 
     ; perform collision check
-    ld d, 0xFF & 0 - ANIM_PLAYER_WALK_FRAMES
+    ld d, 0xFF & 0 - ANIM_TILE_SIZE 
     ld e, 0
     call player_collision_check
 
@@ -85,7 +85,7 @@ sm_player_poll_inputs:
 
     ; perform collision check
     ld d, 0
-    ld e, 0xFF & 0 - ANIM_PLAYER_WALK_FRAMES
+    ld e, 0xFF & 0 - ANIM_TILE_SIZE 
     call player_collision_check
 
     ret
@@ -102,7 +102,7 @@ sm_player_poll_inputs:
 
     ; perform collision check
     ld d, 0
-    ld e, ANIM_PLAYER_WALK_FRAMES
+    ld e, ANIM_TILE_SIZE 
     call player_collision_check
 
     ret