diff options
author | Astatin <[email protected]> | 2024-08-11 19:06:15 +0900 |
---|---|---|
committer | Astatin <astatin@redacted> | 2024-08-11 19:06:15 +0900 |
commit | 59c2f3cc678df564bb9cf2b232537ce8a9d734fa (patch) | |
tree | ecc18d5c14ec81bc0d47d86245520723aa22bd47 /bunny.gbasm | |
parent | 865aa6689a7372b7453b41fba6c5b787c72843d7 (diff) |
Add collisions
Diffstat (limited to 'bunny.gbasm')
-rw-r--r-- | bunny.gbasm | 37 |
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 |