diff --git a/games/keen/keyboard.s b/games/keen/keyboard.s index 909e9dc8..38aee67f 100644 --- a/games/keen/keyboard.s +++ b/games/keen/keyboard.s @@ -1,5 +1,7 @@ JUMP_HEIGHT = 6 +SIDE_JUMP_DISTANCE = 14 + ;============================== ; Handle Keypress ;============================== @@ -107,7 +109,7 @@ check_left: cmp #'A' beq left_pressed cmp #8 ; left key - bne check_right + bne check_left_slight left_pressed: ;=============================== @@ -120,6 +122,10 @@ left_pressed: cmp #$ff ; check if facing left bne left_facing_right + lda KEEN_WALKING + cmp #4 + bcs done_left_pressed ; don't shorten it + lda #4 sta KEEN_WALKING @@ -144,11 +150,23 @@ done_left_pressed: jmp done_keypress +check_left_slight: + cmp #'Z' + bne check_right + + lda #LEFT + sta KEEN_DIRECTION + + lda #1 + sta KEEN_WALKING + jmp done_right_pressed ; don't shorten it + + check_right: cmp #'D' beq right_pressed cmp #$15 ; right key - bne check_jump_right + bne check_right_slight ;=============================== @@ -162,9 +180,18 @@ right_pressed: cmp #$1 ; check if facing right bne right_facing_left + lda KEEN_WALKING + cmp #4 + bcs done_right_pressed ; don't shorten it + +; clc +; lda KEEN_WALKING +; adc #4 +; sta KEEN_WALKING + lda #4 sta KEEN_WALKING - jmp done_left_pressed + jmp done_right_pressed right_facing_left: lda KEEN_WALKING @@ -185,6 +212,17 @@ done_right_pressed: jmp done_keypress +check_right_slight: + cmp #'C' + bne check_jump_right + + lda #RIGHT + sta KEEN_DIRECTION + + lda #1 + sta KEEN_WALKING + jmp done_right_pressed ; don't shorten it + check_jump_right: cmp #'E' bne check_jump_left @@ -206,7 +244,7 @@ jump_right: lda #1 sta KEEN_DIRECTION - lda #10 + lda #SIDE_JUMP_DISTANCE sta KEEN_WALKING jmp done_keypress @@ -233,7 +271,7 @@ jump_left: lda #$FF sta KEEN_DIRECTION - lda #10 + lda #SIDE_JUMP_DISTANCE sta KEEN_WALKING jmp done_keypress diff --git a/games/keen/move_keen.s b/games/keen/move_keen.s index 809c85ca..11e2755a 100644 --- a/games/keen/move_keen.s +++ b/games/keen/move_keen.s @@ -16,15 +16,12 @@ move_keen: lda #0 sta SUPPRESS_WALK ; if we collide we set this to stop walk -; jsr keen_get_feet_location ; get location of feet - jsr check_falling ; check for/handle falling jsr keen_collide ; check for right/left collision jsr handle_jumping ; handle jumping - lda KEEN_WALKING ; if not walking, we're done beq move_keen_early_out diff --git a/games/keen/text_help.s b/games/keen/text_help.s index 521a7e17..1a64207a 100644 --- a/games/keen/text_help.s +++ b/games/keen/text_help.s @@ -33,11 +33,13 @@ help_text: .byte 3, 7, "D OR -> : MOVE RIGHT",0 .byte 3, 8, "Q : JUMP LEFT",0 .byte 3, 9, "E : JUMP RIGHT",0 -.byte 3,10, "M : FIRE LASERGUN",0 -.byte 3,11, "P : POGO",0 -.byte 3,13, "SPACEBAR : ACTION/JUMP",0 -.byte 3,13, "RETURN : STATUS BAR",0 -.byte 3,14, "ESC : QUITS",0 -.byte 3,15, "CONTROL-T : TOGGLE SOUND",0 -.byte 3,16, "J : ENABLE JOYSTICK",0 +.byte 3,10, "Z : FINE LEFT",0 +.byte 3,11, "C : FINE RIGHT",0 +.byte 3,12, "M : FIRE LASERGUN",0 +.byte 3,13, "P : POGO",0 +.byte 3,15, "SPACEBAR : ACTION/JUMP",0 +.byte 3,16, "RETURN : STATUS BAR",0 +.byte 3,17, "ESC : QUITS",0 +.byte 3,18, "CONTROL-T : TOGGLE SOUND",0 +.byte 3,19, "J : ENABLE JOYSTICK",0 .byte 255