From: Lukas Krickl Date: Tue, 9 Dec 2025 14:32:06 +0000 (+0100) Subject: player: improved collision box X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=010d9104d469e88ee22111f1be1f0900568f5cf0;p=gbrg%2F.git player: improved collision box gravity: gravity now peaks jump if it is being applied --- diff --git a/src/actor.s b/src/actor.s index 3354a64..802fde1 100644 --- a/src/actor.s +++ b/src/actor.s @@ -3,6 +3,9 @@ ; sets act_direction to DOWN ; inputs: ; de: actor + ; returns: + ; a: != 0 no gravity + ; a: 0 gravity act_apply_gravity: ld a, [col_direction] and a, DIRUP @@ -17,6 +20,8 @@ act_apply_gravity: ld a, [hl] inc a ld [hl], a + + xor a, a ret ; stores current position in col_prev_pos diff --git a/src/player.s b/src/player.s index 3dea74f..42c0d15 100644 --- a/src/player.s +++ b/src/player.s @@ -5,8 +5,9 @@ ; sets up the player actor player_init: - xor a, a + ld a, 0x5A ld [player+act_pos_y], a + ld a, 0x47 ld [player+act_pos_x], a ret @@ -25,31 +26,35 @@ player_col_write_points: ; top left point ld a, b + add a, 2 ld [col_point_tl], a ld a, c + add a, 2 ld [col_point_tl+1], a ; top right point ld a, b + add a, 2 ld [col_point_tr], a ld a, c - add a, 16 + add a, 12 ld [col_point_tr+1], a ; bottom left point ld a, b - add a, 16 + add a, 14 ld [col_point_bl], a ld a, c + add a, 2 ld [col_point_bl+1], a ; bottom right points ld a, b - add a, 16 + add a, 14 ld [col_point_br], a ld a, c - add a, 16 + add a, 14 ld [col_point_br+1], a ; center point @@ -76,6 +81,11 @@ player_update: pop de push de call act_apply_gravity + cp a, 0 + jr nz, @no_gravity REL + ld a, 1 + ld [player_jump_peak], a +@no_gravity: pop de call act_test_tile_collision