From 59c2f3cc678df564bb9cf2b232537ce8a9d734fa Mon Sep 17 00:00:00 2001 From: Astatin Date: Sun, 11 Aug 2024 19:06:15 +0900 Subject: Add collisions --- bunny.gbasm | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'bunny.gbasm') 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 -- cgit v1.2.3-70-g09d2