aboutsummaryrefslogtreecommitdiff
path: root/bunny.gbasm
diff options
context:
space:
mode:
authorAstatin <[email protected]>2024-08-11 19:06:15 +0900
committerAstatin <astatin@redacted>2024-08-11 19:06:15 +0900
commit59c2f3cc678df564bb9cf2b232537ce8a9d734fa (patch)
treeecc18d5c14ec81bc0d47d86245520723aa22bd47 /bunny.gbasm
parent865aa6689a7372b7453b41fba6c5b787c72843d7 (diff)
Add collisions
Diffstat (limited to 'bunny.gbasm')
-rw-r--r--bunny.gbasm37
1 files changed, 36 insertions, 1 deletions
diff --git a/bunny.gbasm b/bunny.gbasm
index 467f9dd..01801ab 100644
--- a/bunny.gbasm
+++ b/bunny.gbasm
@@ -25,6 +25,7 @@ Move_Bunny:
JP Z, =Move_Bunny.end
Move_Bunny.check_direction:
+ LD A, $mem_moving_sprite_direction
LD $mem_sprite_direction, A
DEC A
@@ -36,7 +37,23 @@ Move_Bunny:
Move_Bunny.check_direction_end:
BIT 1, A
- JR NZ, =Move_Bunny.vertical_px_move
+ JR NZ, =Move_Bunny.vertical_move
+
+ Move_Bunny.horizontal_move:
+ Move_Bunny.horizontal_move.check_collision:
+ LD D, B
+ LD A, $mem_bunny_y
+ LD B, A
+ LD A, $mem_bunny_x
+
+ ADD D
+
+ CALL =Is_Solid
+
+ CP $00
+ JR NZ, =Move_Bunny.collision
+
+ LD B, D
Move_Bunny.horizontal_px_move:
LD A, $mem_bunny_x_px
@@ -54,6 +71,19 @@ Move_Bunny:
LD $reg_viewport_x, A
JP =Move_Bunny.check_end_of_movement
+ Move_Bunny.vertical_move:
+ LD D, B
+ LD A, $mem_bunny_y
+ ADD D
+ LD B, A
+ LD A, $mem_bunny_x
+
+ CALL =Is_Solid
+
+ CP $00
+ JR NZ, =Move_Bunny.collision
+
+ LD B, D
Move_Bunny.vertical_px_move:
LD A, $mem_bunny_y_px
@@ -71,6 +101,11 @@ Move_Bunny:
LD $reg_viewport_y, A
JP =Move_Bunny.check_end_of_movement
+ Move_Bunny.collision:
+ LD A, $00
+ LD $mem_moving_sprite_direction, A
+ JP =Move_Bunny.end
+
Move_Bunny.check_end_of_movement:
LD A, $mem_moving_animation_step
INC A