From: Lukas Krickl Date: Tue, 23 Sep 2025 20:47:34 +0000 (+0200) Subject: player: Added sub-pixel movement X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=75a060d8cca1ed45c86428ee51f41b8a36eeef7a;p=gbrg%2F.git player: Added sub-pixel movement --- diff --git a/src/player.s b/src/player.s index e4e5599..1794ae3 100644 --- a/src/player.s +++ b/src/player.s @@ -1,4 +1,4 @@ -#define PLAYER_SPEED 1 +#define PLAYER_SPEED 0x80 ; sets up the player actor player_init: @@ -104,12 +104,18 @@ player_try_scroll_up: ; returns: ; b/c: new y/x position player_stage_move_p: - ld a, [player+act_pos_y] + ld a, [player_sub_pixel_y] add a, b + ld [player_sub_pixel_y], a + ld a, [player+act_pos_y] + adc a, 0 ld b, a - ld a, [player+act_pos_x] + ld a, [player_sub_pixel_x] add a, c + ld [player_sub_pixel_x], a + ld a, [player+act_pos_x] + adc a, 0 ld c, a ret @@ -120,12 +126,18 @@ player_stage_move_p: ; returns: ; b/c: new y/x position player_stage_move_n: - ld a, [player+act_pos_y] + ld a, [player_sub_pixel_y] sub a, b + ld [player_sub_pixel_y], a + ld a, [player+act_pos_y] + sbc a, 0 ld b, a - ld a, [player+act_pos_x] + ld a, [player_sub_pixel_x] sub a, c + ld [player_sub_pixel_x], a + ld a, [player+act_pos_x] + sbc a, 0 ld c, a ret diff --git a/src/wram.s b/src/wram.s index e16109c..e52a323 100644 --- a/src/wram.s +++ b/src/wram.s @@ -63,7 +63,9 @@ srand: .adv 2 ; advance if possible player_next_scroll_y: .adv 1 - +; y/x sub pixel movement for player +player_sub_pixel_y: .adv 1 +player_sub_pixel_x: .adv 1 player: .adv act_size actors: .adv act_size * ACTS_MAX map_objs: .adv mo_size * MAP_OBJ_MAX