mirror of
https://github.com/Pecusx/dino-game.git
synced 2026-05-20 22:33:23 +02:00
Let's animate!
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+32
-9
@@ -29,38 +29,53 @@ dino_crouch_2
|
||||
.by $33, $34, $35, $36, $37 ; '#### '
|
||||
.by $3d, $3e, $3f, $3b, $3c ; '#### '
|
||||
DinoShapesTableL
|
||||
.by <dino_run_0
|
||||
.by <dino_run_1
|
||||
.by <dino_run_2
|
||||
.by <dino_crouch_1
|
||||
.by <dino_crouch_2
|
||||
.by <dino_run_0 ; jump
|
||||
DinoShapesTableH
|
||||
.by >dino_run_0
|
||||
.by >dino_run_1
|
||||
.by >dino_run_2
|
||||
.by >dino_crouch_1
|
||||
.by >dino_crouch_2
|
||||
.by >dino_run_0 ; jump
|
||||
; other objects
|
||||
ground_0
|
||||
.by $ff, $ff ; '..'
|
||||
.by $ff, $ff ; '..'
|
||||
.by $ff, $ff ; '..'
|
||||
.by $52, $ff ; '#.'
|
||||
.by $52, $52 ; '##'
|
||||
bird_0
|
||||
.by $ff, $ff ; '..'
|
||||
.by $ff, $ff ; '..'
|
||||
.by $48, $ff ; '#.'
|
||||
.by $52, $ff ; '#.'
|
||||
.by $40, $41 ; '##'
|
||||
.by $52, $52 ; '##'
|
||||
bird_1
|
||||
.by $ff, $ff ; '..'
|
||||
.by $48, $ff ; '#.'
|
||||
.by $40, $41 ; '##'
|
||||
.by $ff, $ff ; '..'
|
||||
.by $52, $ff ; '#.'
|
||||
.by $52, $52 ; '##'
|
||||
bird_2
|
||||
.by $48, $ff ; '#.'
|
||||
.by $40, $41 ; '##'
|
||||
.by $ff, $ff ; '..'
|
||||
.by $ff, $ff ; ''.'
|
||||
.by $52, $ff ; '#.'
|
||||
.by $52, $52 ; '##'
|
||||
bird_0a
|
||||
.by $ff, $ff ; '..'
|
||||
.by $ff, $ff ; '..'
|
||||
.by $42, $43 ; '##'
|
||||
.by $52, $52 ; '##'
|
||||
bird_1a
|
||||
.by $ff, $ff ; '..'
|
||||
.by $42, $43 ; '##'
|
||||
.by $ff, $ff ; '..'
|
||||
.by $52, $52 ; '##'
|
||||
bird_2a
|
||||
.by $42, $43 ; '##'
|
||||
.by $ff, $ff ; '..'
|
||||
.by $ff, $ff ; ''.'
|
||||
.by $52, $52 ; '##'
|
||||
cactus_0
|
||||
.by $ff, $ff ; '..'
|
||||
.by $54, $54 ; '##'
|
||||
@@ -68,16 +83,24 @@ cactus_0
|
||||
.by $52, $52 ; '##'
|
||||
|
||||
ShapesTableL
|
||||
.by <ground_0
|
||||
.by <ground_0
|
||||
.by <bird_0
|
||||
.by <bird_0a
|
||||
.by <bird_1
|
||||
.by <bird_1a
|
||||
.by <bird_2
|
||||
.by <bird_2a
|
||||
.by <cactus_0
|
||||
ShapesTableH
|
||||
.by >ground_0
|
||||
.by >ground_0
|
||||
.by >bird_0
|
||||
.by >bird_0a
|
||||
.by >bird_1
|
||||
.by >bird_1a
|
||||
.by >bird_2
|
||||
.by >bird_2a
|
||||
.by >cactus_0
|
||||
diff_object_gap ; min distance between obstacles by difficulty level
|
||||
:DIFF_LEVELS .by 20-#
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
mads 2.1.7 build 3 (13 Sep 23)
|
||||
Label table:
|
||||
@@ -0,0 +1,111 @@
|
||||
mads 2.1.7 build 3 (13 Sep 23)
|
||||
Source: shapes.asm
|
||||
1 ; @com.wudsn.ide.asm.mainsourcefile=dino.asm
|
||||
2
|
||||
3 .IF *>0 ;this is a trick that prevents compiling this file alone
|
||||
4
|
||||
5 ; dno run
|
||||
6 dino_run_0 ; anly '0' jumps
|
||||
7 .by $ff, $23, $27, $2b, $ff ; '. .'
|
||||
8 .by $20, $24, $28, $2c, $ff ; ' ## .'
|
||||
9 .by $21, $25, $29, $ff, $ff ; '## ..'
|
||||
10 .by $22, $26, $2a, $ff, $ff ; '## ..'
|
||||
11 dino_run_1
|
||||
12 .by $ff, $23, $27, $2b, $ff ; '. .'
|
||||
13 .by $20, $24, $28, $2c, $ff ; ' ## .'
|
||||
14 .by $21, $25, $29, $ff, $ff ; '## ..'
|
||||
15 .by $2d, $2e, $2f, $ff, $ff ; '## ..'
|
||||
16 dino_run_2
|
||||
17 .by $ff, $23, $27, $2b, $ff ; '. .'
|
||||
18 .by $20, $24, $28, $2c, $ff ; ' ## .'
|
||||
19 .by $21, $25, $29, $ff, $ff ; '## ..'
|
||||
20 .by $30, $31, $32, $ff, $ff ; '## ..'
|
||||
21 dino_crouch_1
|
||||
22 .by $ff, $ff, $ff, $ff, $ff ; '.....'
|
||||
23 .by $ff, $ff, $ff, $ff, $ff ; '.....'
|
||||
24 .by $33, $34, $35, $36, $37 ; '#### '
|
||||
25 .by $38, $39, $3a, $3b, $3c ; '#### '
|
||||
26 dino_crouch_2
|
||||
27 .by $ff, $ff, $ff, $ff, $ff ; '.....'
|
||||
28 .by $ff, $ff, $ff, $ff, $ff ; '.....'
|
||||
29 .by $33, $34, $35, $36, $37 ; '#### '
|
||||
30 .by $3d, $3e, $3f, $3b, $3c ; '#### '
|
||||
31 DinoShapesTableL
|
||||
32 .by <dino_run_0
|
||||
33 .by <dino_run_1
|
||||
34 .by <dino_run_2
|
||||
35 .by <dino_crouch_1
|
||||
36 .by <dino_crouch_2
|
||||
37 DinoShapesTableH
|
||||
38 .by >dino_run_0
|
||||
39 .by >dino_run_1
|
||||
40 .by >dino_run_2
|
||||
41 .by >dino_crouch_1
|
||||
42 .by >dino_crouch_2
|
||||
43 ; other objects
|
||||
44 ground_0
|
||||
45 .by $ff, $ff ; '..'
|
||||
46 .by $ff, $ff ; '..'
|
||||
47 .by $ff, $ff ; '..'
|
||||
48 .by $52, $ff ; '#.'
|
||||
49 bird_0
|
||||
50 .by $ff, $ff ; '..'
|
||||
51 .by $ff, $ff ; '..'
|
||||
52 .by $40, $41 ; '##'
|
||||
53 .by $52, $ff ; '#.'
|
||||
54 bird_1
|
||||
55 .by $ff, $ff ; '..'
|
||||
56 .by $40, $41 ; '##'
|
||||
57 .by $ff, $ff ; '..'
|
||||
58 .by $52, $ff ; '#.'
|
||||
59 bird_2
|
||||
60 .by $40, $41 ; '##'
|
||||
61 .by $ff, $ff ; '..'
|
||||
62 .by $ff, $ff ; ''.'
|
||||
63 .by $52, $ff ; '#.'
|
||||
64 bird_0a
|
||||
65 .by $ff, $ff ; '..'
|
||||
66 .by $ff, $ff ; '..'
|
||||
67 .by $42, $43 ; '##'
|
||||
68 .by $52, $ff ; '#.'
|
||||
69 bird_1a
|
||||
70 .by $ff, $ff ; '..'
|
||||
71 .by $42, $43 ; '##'
|
||||
72 .by $ff, $ff ; '..'
|
||||
73 .by $52, $ff ; '#.'
|
||||
74 bird_2a
|
||||
75 .by $42, $43 ; '##'
|
||||
76 .by $ff, $ff ; '..'
|
||||
77 .by $ff, $ff ; ''.'
|
||||
78 .by $52, $ff ; '#.'
|
||||
79 cactus_0
|
||||
80 .by $ff, $ff ; '..'
|
||||
81 .by $54, $54 ; '##'
|
||||
82 .by $54, $54 ; '##'
|
||||
83 .by $52, $52 ; '##'
|
||||
84
|
||||
85 ShapesTableL
|
||||
86 .by <ground_0
|
||||
87 .by <bird_0
|
||||
88 .by <bird_0a
|
||||
89 .by <bird_1
|
||||
90 .by <bird_1a
|
||||
91 .by <bird_2
|
||||
92 .by <bird_2a
|
||||
93 .by <cactus_0
|
||||
94 ShapesTableH
|
||||
95 .by >ground_0
|
||||
96 .by >bird_0
|
||||
97 .by >bird_0a
|
||||
98 .by >bird_1
|
||||
99 .by >bird_1a
|
||||
100 .by >bird_2
|
||||
101 .by >bird_2a
|
||||
102 .by >cactus_0
|
||||
103 diff_object_gap ; min distance between obstacles by difficulty level
|
||||
104 :DIFF_LEVELS .by 20-#
|
||||
105 ;----------vars----------
|
||||
106 diff_level .ds 1
|
||||
107
|
||||
108
|
||||
109 .endif ; .IF *>0
|
||||
@@ -10,6 +10,8 @@ DIFF_LEVELS = 16
|
||||
; Zpage variables
|
||||
.zpvar temp_w .word = $80
|
||||
.zpvar temp_b .byte
|
||||
.zpvar DinoWalkPhase .byte
|
||||
.zpvar DinoState .byte ; 0/1 - walk, 2/3 - crouch, 4... - jump
|
||||
;---------------------------------------------------
|
||||
icl 'lib/ATARISYS.ASM'
|
||||
icl 'lib/MACRO.ASM'
|
||||
@@ -43,7 +45,7 @@ screen
|
||||
.ds $100*SCR_HEIGHT
|
||||
; display list
|
||||
GameDL
|
||||
:5 .byte SKIP8 ; empty lines
|
||||
:10 .byte SKIP8 ; empty lines
|
||||
|
||||
.rept SCR_HEIGHT, #
|
||||
.byte MODE2+LMS+SCH ; gr.0+LMS+HSCRL
|
||||
@@ -59,7 +61,8 @@ WorldTable
|
||||
;---------------------------------------------------
|
||||
FirstSTART
|
||||
jsr GenerateCharsets
|
||||
jsr ClearWorld
|
||||
jsr SetStart
|
||||
jsr SetGameScreen
|
||||
mva #0 diff_level
|
||||
|
||||
; test only (some object in the world)
|
||||
@@ -70,7 +73,6 @@ FirstSTART
|
||||
lda #4+$80 ; cactus (second char)
|
||||
sta WorldTable+21
|
||||
;
|
||||
jsr SetGameScreen
|
||||
ldx #5 ; position
|
||||
ldy #0 ; shape
|
||||
jsr ShowDino
|
||||
@@ -91,25 +93,28 @@ EndLoop
|
||||
jsr WorldShift
|
||||
jsr WorldToScreen
|
||||
ldx #5 ; position
|
||||
ldy #0 ; shape
|
||||
lda DinoState
|
||||
ora DinoWalkPhase ; shape
|
||||
tay
|
||||
jsr ShowDino
|
||||
wait ; or waitRTC ?
|
||||
key
|
||||
waitRTC ; or waitRTC ?
|
||||
;key
|
||||
mva #>font2 chbas
|
||||
waitRTC ; or waitRTC ?
|
||||
mva #3 hscrol
|
||||
wait ; or waitRTC ?
|
||||
key
|
||||
waitRTC ; or waitRTC ?
|
||||
;key
|
||||
mva #>font3 chbas
|
||||
waitRTC ; or waitRTC ?
|
||||
mva #2 hscrol
|
||||
wait ; or waitRTC ?
|
||||
key
|
||||
waitRTC ; or waitRTC ?
|
||||
;key
|
||||
mva #>font4 chbas
|
||||
waitRTC ; or waitRTC ?
|
||||
mva #1 hscrol
|
||||
wait ; or waitRTC ?
|
||||
key
|
||||
waitRTC ; or waitRTC ?
|
||||
;key
|
||||
jsr AnimateBirds
|
||||
mva #>font1 chbas
|
||||
waitRTC ; or waitRTC ?
|
||||
mva #4 hscrol
|
||||
@@ -215,7 +220,8 @@ insertObject
|
||||
lda RANDOM
|
||||
and #%00000001 ; insert 50/50
|
||||
beq noInsert
|
||||
mva #1 WorldTable+WORLD_LENGTH-2
|
||||
mva #6 WorldTable+WORLD_LENGTH-2
|
||||
mva #6+$80 WorldTable+WORLD_LENGTH-1
|
||||
inc diff_level
|
||||
|
||||
|
||||
@@ -224,7 +230,28 @@ noInsert
|
||||
rts
|
||||
.endp
|
||||
;-----------------------------------------------
|
||||
; Show Object on screen (test)
|
||||
.proc AnimateBirds
|
||||
ldy #WORLD_LENGTH
|
||||
@ lda WorldTable,y
|
||||
tax
|
||||
and #%01111111
|
||||
beq NoBird
|
||||
cmp #8 ; first cactus
|
||||
bcs NoBird
|
||||
; then animate bird
|
||||
txa
|
||||
eor #%0000001
|
||||
sta WorldTable,y
|
||||
NoBird
|
||||
dey
|
||||
bpl @-
|
||||
lda DinoWalkPhase
|
||||
eor #%00000001
|
||||
sta DinoWalkPhase
|
||||
rts
|
||||
.endp
|
||||
;-----------------------------------------------
|
||||
; Show Object on screen
|
||||
; X - y position
|
||||
; Y - shape nr
|
||||
;-----------------------------------------------
|
||||
@@ -292,8 +319,14 @@ DinoLoop
|
||||
rts
|
||||
.endp
|
||||
;-----------------------------------------------
|
||||
; Generation of character sets 2,3 and 4 of 1
|
||||
; By copying and horizontal shift dino
|
||||
.proc SetStart
|
||||
jsr ClearWorld
|
||||
lda #0
|
||||
sta DinoWalkPhase
|
||||
lda #0
|
||||
sta DinoState
|
||||
rts
|
||||
.endp
|
||||
;-----------------------------------------------
|
||||
.proc SetGameScreen
|
||||
mwa #GameDL dlptrs
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
mads 2.1.7 build 3 (13 Sep 23)
|
||||
Label table:
|
||||
00 0008 SCR_HEIGHT
|
||||
00 0040 WORLD_LENGTH
|
||||
00 0010 DIFF_LEVELS
|
||||
00 E400 EDITRV
|
||||
00 E410 SCRENV
|
||||
00 E420 KEYBDV
|
||||
@@ -576,58 +578,72 @@ FFFD 0000 @KBCODE
|
||||
00 009B EOL
|
||||
00 0080 TEMP_W
|
||||
00 0082 TEMP_B
|
||||
00 0083 DINOWALKPHASE
|
||||
00 0084 DINOSTATE
|
||||
00 2000 FONT1
|
||||
00 2400 FONT2
|
||||
00 2800 FONT3
|
||||
00 2C00 FONT4
|
||||
00 3000 SCREEN
|
||||
00 3800 GAMEDL
|
||||
00 3806 LINE0_ADDR
|
||||
00 3809 LINE1_ADDR
|
||||
00 380C LINE2_ADDR
|
||||
00 380F LINE3_ADDR
|
||||
00 3812 LINE4_ADDR
|
||||
00 3815 LINE5_ADDR
|
||||
00 3818 LINE6_ADDR
|
||||
00 381B LINE7_ADDR
|
||||
00 3820 WORLDTABLE
|
||||
00 3860 FIRSTSTART
|
||||
00 38A0 ENDLOOP
|
||||
00 3988 GENERATECHARSETS
|
||||
00 398A GENERATECHARSETS.COPYLOOP
|
||||
00 39B2 CLEARWORLD
|
||||
00 39B6 CLEARWORLD.0@
|
||||
00 39BD CLEARSCREEN
|
||||
00 39C1 CLEARSCREEN.CLEARLOOP
|
||||
00 39D4 WORLDTOSCREEN
|
||||
00 39DB WORLDTOSCREEN.TOSCREENLOOP
|
||||
00 39E4 WORLDTOSCREEN.NOTHINGTODRAW
|
||||
00 39ED WORLDSHIFT
|
||||
00 39EF WORLDSHIFT.SHIFT
|
||||
00 3A00 SHOWOBJECT
|
||||
00 3A0C SHOWOBJECT.OBJECTLOOP
|
||||
00 3A13 SHOWOBJECT.1@
|
||||
00 3A25 SHOWOBJECT.2@
|
||||
00 3A37 SHOWOBJECT.3@
|
||||
00 3A49 SHOWOBJECT.4@
|
||||
00 3A5B SHOWDINO
|
||||
00 3A67 SHOWDINO.DINOLOOP
|
||||
00 3A6E SHOWDINO.5@
|
||||
00 3A80 SHOWDINO.6@
|
||||
00 3A92 SHOWDINO.7@
|
||||
00 3AA4 SHOWDINO.8@
|
||||
00 3AB6 SETGAMESCREEN
|
||||
00 3ACB DINO_RUN_0
|
||||
00 3ADF DINO_RUN_1
|
||||
00 3AF3 DINO_RUN_2
|
||||
00 3B07 DINO_CROUCH_1
|
||||
00 3B1B DINO_CROUCH_2
|
||||
00 3B2F DINOSHAPESTABLEL
|
||||
00 3B34 DINOSHAPESTABLEH
|
||||
00 3B39 GROUND_0
|
||||
00 3B41 BIRD_0
|
||||
00 3B49 BIRD_1
|
||||
00 3B51 BIRD_2
|
||||
00 3B59 CACTUS_0
|
||||
00 3B61 SHAPESTABLEL
|
||||
00 3B66 SHAPESTABLEH
|
||||
00 380B LINE0_ADDR
|
||||
00 380E LINE1_ADDR
|
||||
00 3811 LINE2_ADDR
|
||||
00 3814 LINE3_ADDR
|
||||
00 3817 LINE4_ADDR
|
||||
00 381A LINE5_ADDR
|
||||
00 381D LINE6_ADDR
|
||||
00 3820 LINE7_ADDR
|
||||
00 3825 WORLDTABLE
|
||||
00 3865 FIRSTSTART
|
||||
00 38AA ENDLOOP
|
||||
00 3924 GENERATECHARSETS
|
||||
00 3926 GENERATECHARSETS.COPYLOOP
|
||||
00 394E CLEARWORLD
|
||||
00 3952 CLEARWORLD.0@
|
||||
00 3959 CLEARSCREEN
|
||||
00 395D CLEARSCREEN.CLEARLOOP
|
||||
00 3970 WORLDTOSCREEN
|
||||
00 3977 WORLDTOSCREEN.TOSCREENLOOP
|
||||
00 3980 WORLDTOSCREEN.NOTHINGTODRAW
|
||||
00 3989 WORLDSHIFT
|
||||
00 398B WORLDSHIFT.SHIFT
|
||||
00 39A5 WORLDSHIFT.1@
|
||||
00 39AF WORLDSHIFT.INSERTOBJECT
|
||||
00 39C3 WORLDSHIFT.NOINSERT
|
||||
00 39C4 ANIMATEBIRDS
|
||||
00 39C6 ANIMATEBIRDS.2@
|
||||
00 39D8 ANIMATEBIRDS.NOBIRD
|
||||
00 39E2 SHOWOBJECT
|
||||
00 39EE SHOWOBJECT.OBJECTLOOP
|
||||
00 39F5 SHOWOBJECT.3@
|
||||
00 3A07 SHOWOBJECT.4@
|
||||
00 3A19 SHOWOBJECT.5@
|
||||
00 3A2B SHOWOBJECT.6@
|
||||
00 3A3D SHOWDINO
|
||||
00 3A49 SHOWDINO.DINOLOOP
|
||||
00 3A50 SHOWDINO.7@
|
||||
00 3A62 SHOWDINO.8@
|
||||
00 3A74 SHOWDINO.9@
|
||||
00 3A86 SHOWDINO.10@
|
||||
00 3A98 SETSTART
|
||||
00 3AA4 SETGAMESCREEN
|
||||
00 3AB9 DINO_RUN_0
|
||||
00 3ACD DINO_RUN_1
|
||||
00 3AE1 DINO_RUN_2
|
||||
00 3AF5 DINO_CROUCH_1
|
||||
00 3B09 DINO_CROUCH_2
|
||||
00 3B1D DINOSHAPESTABLEL
|
||||
00 3B22 DINOSHAPESTABLEH
|
||||
00 3B27 GROUND_0
|
||||
00 3B2F BIRD_0
|
||||
00 3B37 BIRD_1
|
||||
00 3B3F BIRD_2
|
||||
00 3B47 BIRD_0A
|
||||
00 3B4F BIRD_1A
|
||||
00 3B57 BIRD_2A
|
||||
00 3B5F CACTUS_0
|
||||
00 3B67 SHAPESTABLEL
|
||||
00 3B70 SHAPESTABLEH
|
||||
00 3B79 DIFF_OBJECT_GAP
|
||||
00 3B89 DIFF_LEVEL
|
||||
|
||||
Reference in New Issue
Block a user