From f8b89e4bc8647c1d03cdc841edd20442bc1cb341 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 12 Aug 2024 10:00:05 +0200 Subject: [PATCH] Score added --- .gitignore | 1 + dino.asm | 41 ++++++++++++++++++++++++- dino.asm.bak | 85 +++++++++++++++++++++++++++++++-------------------- dino.xex | Bin 5662 -> 5771 bytes 4 files changed, 93 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index 7923380..cdac3bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ dino.lab dino.lst +*.bak diff --git a/dino.asm b/dino.asm index 4ba417a..5dbfd09 100644 --- a/dino.asm +++ b/dino.asm @@ -47,7 +47,12 @@ screen .ds $100*SCR_HEIGHT ; display list GameDL - :15 .byte SKIP8 ; empty lines + :13 .byte SKIP8 ; empty lines + + .byte MODE2+LMS ; gr.8+LMS + .word status_line + + .byte SKIP8 ; empty lines .rept SCR_HEIGHT, # .byte MODE2+LMS+SCH ; gr.0+LMS+HSCRL @@ -56,6 +61,9 @@ line:1_addr .endr .byte JVB .word GameDL +status_line + dta d" l-hi 00000 r-hi 00000 00000 " +score=status_line+33 ;--------------------------------------------------- ; World table without dino WorldTable @@ -173,6 +181,7 @@ NothingToDraw .endp ;----------------------------------------------- .proc WorldShift + jsr ScoreUp ldy #0 Shift lda WorldTable+1,y @@ -217,6 +226,36 @@ noInsert rts .endp ;----------------------------------------------- +.proc ScoreUp + inc score+4 + lda score+4 + cmp #$1a ; 9+1 character code + bne ScoreReady + lda #$10 ; 0 character code + sta score+4 + inc score+3 + lda score+3 + cmp #$1a ; 9+1 character code + bne ScoreReady + lda #$10 ; 0 character code + sta score+3 + inc score+2 + lda score+2 + cmp #$1a ; 9+1 character code + bne ScoreReady + lda #$10 ; 0 character code + sta score+2 + inc score+1 + lda score+1 + cmp #$1a ; 9+1 character code + bne ScoreReady + lda #$10 ; 0 character code + sta score+1 + inc score +ScoreReady + rts +.endp +;----------------------------------------------- .proc Animate ldy #WORLD_LENGTH @ lda WorldTable,y diff --git a/dino.asm.bak b/dino.asm.bak index 726464c..3a0ba82 100644 --- a/dino.asm.bak +++ b/dino.asm.bak @@ -47,7 +47,12 @@ screen .ds $100*SCR_HEIGHT ; display list GameDL - :15 .byte SKIP8 ; empty lines + :13 .byte SKIP8 ; empty lines + + .byte MODE2+LMS ; gr.8+LMS + .word status_line + + .byte SKIP8 ; empty lines .rept SCR_HEIGHT, # .byte MODE2+LMS+SCH ; gr.0+LMS+HSCRL @@ -56,6 +61,9 @@ line:1_addr .endr .byte JVB .word GameDL +status_line + dta d" l-hi 00000 r-hi 00000 00000 " +score=status_line+33 ;--------------------------------------------------- ; World table without dino WorldTable @@ -64,35 +72,9 @@ WorldTable FirstSTART jsr GenerateCharsets jsr SetGameScreen - jsr SetStart - - ; test only (some object in the world) - lda #1 ;bird0 - sta WorldTable+10 - lda #4 ;cactus - sta WorldTable+20 - lda #4+$80 ; cactus (second char) - sta WorldTable+21 - ; - ldx #5 ; position - ldy #0 ; shape - jsr ShowDino - ldx #10 ; position - ldy #1 ; shape - jsr ShowDino - ldx #15 ; position - ldy #2 ; shape - jsr ShowDino - ldx #20 ; position - ldy #3 ; shape - jsr ShowDino - ldx #25 ; position - ldy #4 ; shape - jsr ShowDino - mva #$50 screen+$700+32 - - mva #0 diff_level - sta Hit + jsr FadeColors +NewGame + jsr SetStart EndLoop ;lda #$32 ;sta COLBAK @@ -127,7 +109,8 @@ EndLoop mva #4 hscrol jmp EndLoop EndGame - halt + key + jmp NewGame rts ;----------------------------------------------- @@ -198,6 +181,7 @@ NothingToDraw .endp ;----------------------------------------------- .proc WorldShift + jsr ScoreUp ldy #0 Shift lda WorldTable+1,y @@ -242,6 +226,36 @@ noInsert rts .endp ;----------------------------------------------- +.proc ScoreUp + inc score+4 + lda score+4 + cmp #$3a ; 9+1 character code + bne ScoreReady + lda #$30 ; 0 character code + sta score+4 + inc score+3 + lda score+3 + cmp #$3a ; 9+1 character code + bne ScoreReady + lda #$30 ; 0 character code + sta score+3 + inc score+2 + lda score+2 + cmp #$3a ; 9+1 character code + bne ScoreReady + lda #$30 ; 0 character code + sta score+2 + inc score+1 + lda score+1 + cmp #$3a ; 9+1 character code + bne ScoreReady + lda #$30 ; 0 character code + sta score+1 + inc score +ScoreReady + rts +.endp +;----------------------------------------------- .proc Animate ldy #WORLD_LENGTH @ lda WorldTable,y @@ -568,10 +582,15 @@ Down jsr ClearWorld lda #0 sta DinoWalkPhase - lda #0 sta DinoState - sta COLOR1 + sta diff_level + sta Hit + rts +.endp +;----------------------------------------------- +.proc FadeColors ldy #0 + sty COLOR1 FadeColor sty COLOR2 sty COLOR4 diff --git a/dino.xex b/dino.xex index b16aab43554ba70e91fe301cf86ef849b52bfd42..fae44002cda9ea36547058988ceb9116bb1acbd3 100644 GIT binary patch delta 504 zcmbQI)2+KfLqN#St^gT0=~zs*5Rg;J;myco5C8!Nh9V?30|bC&CMOCQPc9JPmr&rc zRM4?i;I&owXQL2fsnB7ywC#eA!qLfV1eB~wEm!LFeqmZFa#ZBQpOuWgELRkMS*}z- z2(bW#d=^-EtmVI?$@1YRn7Z&Y!)NYf4naf4kjYkp%Jue^ix}FP_J&v(u&hwfwR+aH ztm%Qnh4%>xyDS$l>Sb^dlM9W4IZ+pPj>xS;R?sPfxdu1lJX zA4GuENwy6?GdX%ES#UP=PPTaGZ0lFjdh&N6bFSgvGf zZEkJp^|zaRTx2#+XlCt1M@L&Qn4BkC;IMJy&Wi_co_zT7<4;CTK}m=Vn6v`|5n&-g j0e(JS9&Rp94t6%y0K0HIMkZz!7G@^K2TTu{rdR*~G@H0w delta 376 zcmeCyou{)wLqOo6Z2=0HY$YH!xmmzknt_2q;emz1ej9}aHVPAM6pSntq^*{=UGPze zn0!q@$;#VurB3e`rllfBMLzsl$=J(sMWNSnr2;~T1t{cGX5q1x|B@!lho4~T!p{t! z;>kvWhKyR1Qv{XGL@gIFv^DM3vM^v-p>V+RS<|wn2M!nBCoEvtsckV+%i_cV`wL%J zG5}fY9@(yRu=sn)cGX_3$p-`_-aWESSm3Zz%VL#g{Rgg-92?lWJQ-(d zO*R)&WZz=j+OYGm?c{i&Xf_KF+ivm!p*FF{wkMe`F#Fh9pJWD7E3Hqm04es(F~VmV zxw$M?GPE|gw)8%-oopgHo9D$J0hKFPY;0_8ZEPmr7AhfG-(0ODJWqyPW_