This commit is contained in:
Pecusx
2024-08-11 14:15:48 +02:00
parent df22998c12
commit 00ea9b1401
5 changed files with 803 additions and 570 deletions
+3 -2
View File
@@ -34,12 +34,14 @@ DinoShapesTableL
.by <dino_crouch_1
.by <dino_crouch_2
.by <dino_run_0 ; jump
.by <dino_run_0 ; jump
DinoShapesTableH
.by >dino_run_1
.by >dino_run_2
.by >dino_crouch_1
.by >dino_crouch_2
.by >dino_run_0 ; jump
.by >dino_run_0 ; jump
; other objects
ground_0
.by $ff, $ff ; '..'
@@ -106,6 +108,5 @@ diff_object_gap ; min distance between obstacles by difficulty level
:DIFF_LEVELS .by 20-#
;----------vars----------
diff_level .ds 1
DinoJumpTr .by 1,2,3,3,2,1
.endif ; .IF *>0
+111 -8
View File
@@ -12,6 +12,7 @@ DIFF_LEVELS = 16
.zpvar temp_b .byte
.zpvar DinoWalkPhase .byte
.zpvar DinoState .byte ; 0/1 - walk, 2/3 - crouch, 4... - jump
.zpvar JumpPhase .byte
;---------------------------------------------------
icl 'lib/ATARISYS.ASM'
icl 'lib/MACRO.ASM'
@@ -93,10 +94,6 @@ EndLoop
jsr WorldShift
jsr WorldToScreen
jsr CheckJoy
ldx #5 ; position
lda DinoState
ora DinoWalkPhase ; shape
tay
jsr ShowDino
waitRTC ; or waitRTC ?
;key
@@ -115,7 +112,7 @@ EndLoop
mva #1 hscrol
waitRTC ; or waitRTC ?
;key
jsr AnimateBirds
jsr Animate
mva #>font1 chbas
waitRTC ; or waitRTC ?
mva #4 hscrol
@@ -231,7 +228,7 @@ noInsert
rts
.endp
;-----------------------------------------------
.proc AnimateBirds
.proc Animate
ldy #WORLD_LENGTH
@ lda WorldTable,y
tax
@@ -246,9 +243,24 @@ noInsert
NoBird
dey
bpl @-
; animate Dino
lda DinoWalkPhase
eor #%00000001
sta DinoWalkPhase
; jump
lda DinoState
cmp #4 ; jump state
bne NoJump
lda JumpPhase
cmp #6 ; max jump phase
beq EndJump
inc JumpPhase
rts
EndJump
lda #0
sta JumpPhase
sta DinoState
NoJump
rts
.endp
;-----------------------------------------------
@@ -287,14 +299,20 @@ ObjectLoop
.endp
;-----------------------------------------------
; Show Dino on screen (test)
; X - y position
; Y - shape nr
;-----------------------------------------------
.proc ShowDino
ldx #5 ; position
lda DinoState
ora DinoWalkPhase ; shape
tay
lda DinoShapesTableL,y
sta temp_w
lda DinoShapesTableH,y
sta temp_w+1
cpy #4 ; jump
beq Jump
cpy #5 ; jump
beq Jump
ldy #0
DinoLoop
lda (temp_w),y
@@ -318,9 +336,91 @@ DinoLoop
cpy #5 ; dino width
bne DinoLoop
rts
Jump
ldy JumpPhase
lda DinoJumpTr,y
cmp #2
beq jPhase2
cmp #3
jeq jPhase3
jPhase1
ldy #0
DinoLoop1
lda (temp_w),y
bmi @+
sta screen+$300,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$400,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$500,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$600,x
@ sbw temp_w #15
inx
iny
cpy #5 ; dino width
bne DinoLoop1
rts
jPhase2
ldy #0
DinoLoop2
lda (temp_w),y
bmi @+
sta screen+$200,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$300,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$400,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$500,x
@ sbw temp_w #15
inx
iny
cpy #5 ; dino width
bne DinoLoop2
rts
jPhase3
ldy #0
DinoLoop3
lda (temp_w),y
bmi @+
sta screen+$100,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$200,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$300,x
@ adw temp_w #5
lda (temp_w),y
bmi @+
sta screen+$400,x
@ sbw temp_w #15
inx
iny
cpy #5 ; dino width
bne DinoLoop3
rts
.endp
;-----------------------------------------------
.proc CheckJoy
lda DinoState
cmp #4 ; jump state
beq NoChange
lda STICK0
and #%00000010 ; down
beq Down
@@ -330,9 +430,12 @@ DinoLoop
; no change state (temporary set to 0)
lda #0
sta DinoState
NoChange
rts
Up lda #4
sta DinoState
lda #0
sta JumpPhase
rts
Down
lda #2
+77 -53
View File
@@ -580,6 +580,7 @@ FFFD 0000 @KBCODE
00 0082 TEMP_B
00 0083 DINOWALKPHASE
00 0084 DINOSTATE
00 0085 JUMPPHASE
00 2000 FONT1
00 2400 FONT2
00 2800 FONT3
@@ -597,56 +598,79 @@ FFFD 0000 @KBCODE
00 3825 WORLDTABLE
00 3865 FIRSTSTART
00 38AA ENDLOOP
00 3927 GENERATECHARSETS
00 3929 GENERATECHARSETS.COPYLOOP
00 3951 CLEARWORLD
00 3955 CLEARWORLD.0@
00 395C CLEARSCREEN
00 3960 CLEARSCREEN.CLEARLOOP
00 3973 WORLDTOSCREEN
00 397A WORLDTOSCREEN.TOSCREENLOOP
00 3983 WORLDTOSCREEN.NOTHINGTODRAW
00 398C WORLDSHIFT
00 398E WORLDSHIFT.SHIFT
00 39A8 WORLDSHIFT.1@
00 39B2 WORLDSHIFT.INSERTOBJECT
00 39C6 WORLDSHIFT.NOINSERT
00 39C7 ANIMATEBIRDS
00 39C9 ANIMATEBIRDS.2@
00 39DB ANIMATEBIRDS.NOBIRD
00 39E5 SHOWOBJECT
00 39F1 SHOWOBJECT.OBJECTLOOP
00 39F8 SHOWOBJECT.3@
00 3A0A SHOWOBJECT.4@
00 3A1C SHOWOBJECT.5@
00 3A2E SHOWOBJECT.6@
00 3A40 SHOWDINO
00 3A4C SHOWDINO.DINOLOOP
00 3A53 SHOWDINO.7@
00 3A65 SHOWDINO.8@
00 3A77 SHOWDINO.9@
00 3A89 SHOWDINO.10@
00 3A9B CHECKJOY
00 3AAE CHECKJOY.UP
00 3AB3 CHECKJOY.DOWN
00 3AB8 SETSTART
00 3AC4 SETGAMESCREEN
00 3AD9 DINO_RUN_0
00 3AED DINO_RUN_1
00 3B01 DINO_RUN_2
00 3B15 DINO_CROUCH_1
00 3B29 DINO_CROUCH_2
00 3B3D DINOSHAPESTABLEL
00 3B42 DINOSHAPESTABLEH
00 3B47 GROUND_0
00 3B4F BIRD_0
00 3B57 BIRD_1
00 3B5F BIRD_2
00 3B67 BIRD_0A
00 3B6F BIRD_1A
00 3B77 BIRD_2A
00 3B7F CACTUS_0
00 3B87 SHAPESTABLEL
00 3B90 SHAPESTABLEH
00 3B99 DIFF_OBJECT_GAP
00 3BA9 DIFF_LEVEL
00 3920 GENERATECHARSETS
00 3922 GENERATECHARSETS.COPYLOOP
00 394A CLEARWORLD
00 394E CLEARWORLD.0@
00 3955 CLEARSCREEN
00 3959 CLEARSCREEN.CLEARLOOP
00 396C WORLDTOSCREEN
00 3973 WORLDTOSCREEN.TOSCREENLOOP
00 397C WORLDTOSCREEN.NOTHINGTODRAW
00 3985 WORLDSHIFT
00 3987 WORLDSHIFT.SHIFT
00 39A1 WORLDSHIFT.1@
00 39AB WORLDSHIFT.INSERTOBJECT
00 39BF WORLDSHIFT.NOINSERT
00 39C0 ANIMATE
00 39C2 ANIMATE.2@
00 39D4 ANIMATE.NOBIRD
00 39EC ANIMATE.ENDJUMP
00 39F2 ANIMATE.NOJUMP
00 39F3 SHOWOBJECT
00 39FF SHOWOBJECT.OBJECTLOOP
00 3A06 SHOWOBJECT.3@
00 3A18 SHOWOBJECT.4@
00 3A2A SHOWOBJECT.5@
00 3A3C SHOWOBJECT.6@
00 3A4E SHOWDINO
00 3A69 SHOWDINO.DINOLOOP
00 3A70 SHOWDINO.7@
00 3A82 SHOWDINO.8@
00 3A94 SHOWDINO.9@
00 3AA6 SHOWDINO.10@
00 3AB8 SHOWDINO.JUMP
00 3AC8 SHOWDINO.JPHASE1
00 3ACA SHOWDINO.DINOLOOP1
00 3AD1 SHOWDINO.11@
00 3AE3 SHOWDINO.12@
00 3AF5 SHOWDINO.13@
00 3B07 SHOWDINO.14@
00 3B19 SHOWDINO.JPHASE2
00 3B1B SHOWDINO.DINOLOOP2
00 3B22 SHOWDINO.15@
00 3B34 SHOWDINO.16@
00 3B46 SHOWDINO.17@
00 3B58 SHOWDINO.18@
00 3B6A SHOWDINO.JPHASE3
00 3B6C SHOWDINO.DINOLOOP3
00 3B73 SHOWDINO.19@
00 3B85 SHOWDINO.20@
00 3B97 SHOWDINO.21@
00 3BA9 SHOWDINO.22@
00 3BBB CHECKJOY
00 3BD3 CHECKJOY.NOCHANGE
00 3BD4 CHECKJOY.UP
00 3BDD CHECKJOY.DOWN
00 3BE2 SETSTART
00 3BEE SETGAMESCREEN
00 3C03 DINO_RUN_0
00 3C17 DINO_RUN_1
00 3C2B DINO_RUN_2
00 3C3F DINO_CROUCH_1
00 3C53 DINO_CROUCH_2
00 3C67 DINOSHAPESTABLEL
00 3C6D DINOSHAPESTABLEH
00 3C73 GROUND_0
00 3C7B BIRD_0
00 3C83 BIRD_1
00 3C8B BIRD_2
00 3C93 BIRD_0A
00 3C9B BIRD_1A
00 3CA3 BIRD_2A
00 3CAB CACTUS_0
00 3CB3 SHAPESTABLEL
00 3CBC SHAPESTABLEH
00 3CC5 DIFF_OBJECT_GAP
00 3CD5 DIFF_LEVEL
00 3CD6 DINOJUMPTR
+612 -507
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.