Initial score panel display

This commit is contained in:
Rob McMullen 2017-07-21 22:02:56 -07:00
parent 4484d2f1f4
commit 152cac3ded
6 changed files with 127 additions and 34 deletions

View File

@ -124,6 +124,9 @@ add_score nop
adc #0
sta player_score_h,x
cld
jsr update_score
rts

View File

@ -164,7 +164,52 @@ paint_boxes nop
; pad.addstr(row - 1, MAZE_SCORE_COL, " ")
; pad.addstr(row, MAZE_SCORE_COL, "Player%d" % (zp.current_actor + 1))
; zp.current_actor += 1
;
clear_panel nop
ldx #MAZE_RIGHT_COL+1
lda #0
?1 jsr text_put_col
inx
cpx #40
bcc ?1
rts
init_panel nop
jsr clear_panel
ldy #1
jsr mazerow
ldy #MAZE_PANEL_COL
ldx #0
?1 lda player1_text,x
beq ?2
sta (mazeaddr),y
iny
inx
bne ?1
?2
ldy #6
jsr mazerow
ldy #MAZE_PANEL_COL
ldx #0
?3 lda player2_text,x
beq ?4
sta (mazeaddr),y
iny
inx
bne ?3
?4
ldx #0
jsr update_score
inx
jsr update_score
rts
player1_text .byte "PLAYER1", 0
player2_text .byte "PLAYER2", 0
; def show_lives(row, num):
; i = 1
; col = SCREEN_COLS
@ -176,8 +221,48 @@ paint_boxes nop
; c = " "
; pad.addch(row, col, ord(c))
; i += 1
;
print_hex pha
stx param_x
lsr
lsr
lsr
lsr
tax
lda hexdigit,x
sta (mazeaddr),y
iny
pla
and #$0f
tax
lda hexdigit,x
sta (mazeaddr),y
iny
ldx param_x
rts
; def update_score():
update_score nop
lda #MAZE_SCORE_COL
sta c
lda player_score_row,x
sta r
lda #4
sta size
jsr damage_string
print_score nop
ldy player_score_row,x
jsr mazerow
ldy #MAZE_SCORE_COL
lda player_score_h,x
jsr print_hex
lda player_score_l,x
jsr print_hex
lda #'0'
sta (mazeaddr),y
rts
; row = player_score_row[zp.current_actor]
; if actor_status[zp.current_actor] == GAME_OVER:
; pad.addstr(row - 1, MAZE_SCORE_COL, "GAME ")

55
debug.s
View File

@ -8,7 +8,7 @@ debugtext nop
rts
printhex ; A = hex byte, X = column, Y = row; A is clobbered, X&Y are not
debughex ; A = hex byte, X = column, Y = row; A is clobbered, X&Y are not
pha
stx param_x
lsr
@ -33,10 +33,13 @@ hexdigit .byte "0123456789ABCDEF"
printstr ; X = column, Y = row, scratch_ptr is text (null terminated)
sty param_y
ldy #0
?next lda (scratch_ptr),y
sty param_index
?next ldy param_index
lda (scratch_ptr),y
beq ?exit
ldy param_y
jsr fastfont
inc param_index
inx
bne ?next
?exit rts
@ -59,12 +62,12 @@ debug_player nop
lda actor_input_dir,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #0
lda actor_dir,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
dec scratch_row
ldx #34
@ -75,12 +78,12 @@ debug_player nop
lda actor_x,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #0
lda actor_y,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
dec scratch_row
ldx #34
@ -91,12 +94,12 @@ debug_player nop
lda actor_col,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #0
lda actor_row,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
dec scratch_row
ldx #34
@ -107,12 +110,12 @@ debug_player nop
lda tdamageindex1
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #0
lda tdamageindex2
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
dec scratch_row
ldx #34
@ -123,12 +126,12 @@ debug_player nop
lda debug_mark_box
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #0
lda debug_paint_box
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
; amidar 4
dec scratch_row
@ -140,12 +143,12 @@ debug_player nop
lda actor_col,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #FIRST_AMIDAR+3
lda actor_row,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
; amidar 3
dec scratch_row
@ -157,12 +160,12 @@ debug_player nop
lda actor_col,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #FIRST_AMIDAR+2
lda actor_row,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
; amidar 2
dec scratch_row
@ -170,12 +173,12 @@ debug_player nop
lda actor_xpixel,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #FIRST_AMIDAR+1
lda actor_ypixel,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
dec scratch_row
ldx #34
@ -186,12 +189,12 @@ debug_player nop
lda actor_col,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #FIRST_AMIDAR+1
lda actor_row,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
; amidar 1 (orbiter)
dec scratch_row
@ -199,24 +202,24 @@ debug_player nop
lda actor_xpixel,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #FIRST_AMIDAR
lda actor_ypixel,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
dec scratch_row
ldx #FIRST_AMIDAR
lda actor_xfrac,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #FIRST_AMIDAR
lda actor_yfrac,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
dec scratch_row
ldx #34
@ -227,11 +230,11 @@ debug_player nop
lda actor_col,x
ldx #35
ldy scratch_row
jsr printhex
jsr debughex
ldx #FIRST_AMIDAR
lda actor_row,x
ldx #38
ldy scratch_row
jsr printhex
jsr debughex
rts

3
maze.s
View File

@ -53,7 +53,8 @@ SCREEN_ROWS = 24
;# cols 33 - 39 is the score area
MAZE_LEFT_COL = 1
MAZE_RIGHT_COL = 31
MAZE_SCORE_COL = 33
MAZE_PANEL_COL = 33
MAZE_SCORE_COL = 35
SCREEN_COLS = 40
;# Orbiter goes around the outside border, but not through the maze

View File

@ -172,7 +172,7 @@ copytexthgr_src_smc
copytexthgr_dest_smc
jsr $ffff
inx
cpx #32
cpx #40
bcc copytexthgr_src_smc
iny
cpy #24

View File

@ -190,9 +190,9 @@ title_screen nop
rts
init_game nop
jsr initbackground
jsr init_level
jsr init_actors
jsr initbackground
lda #0
sta frame_count
sta frame_count+1
@ -203,6 +203,7 @@ init_game nop
initbackground nop
jsr show_page1
jsr init_maze
jsr init_panel
jsr copytexthgr ; page2 becomes the source
; jsr wipeclear1
; jsr wipe2to1
@ -257,8 +258,8 @@ game_loop nop
jsr paint_boxes
jsr renderstart
jsr pageflip
jsr debug_player
jsr wait
;jsr debug_player
;jsr wait
jmp game_loop
@ -316,7 +317,7 @@ userinput
pha
ldx #38
ldy #23
jsr printhex
jsr debughex
ldx #0
pla
bpl input_not_movement ; stop movement of player if no direction input