mirror of
https://github.com/jeremysrand/colourgo.git
synced 2024-06-12 07:29:34 +00:00
Make the character run.
This commit is contained in:
parent
ded8d8c05c
commit
25563dd3b7
204
colourgo/game.s
204
colourgo/game.s
|
@ -7,7 +7,7 @@
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
.export _game, _drawCharacter
|
.export _game
|
||||||
|
|
||||||
.import _vblWait
|
.import _vblWait
|
||||||
|
|
||||||
|
@ -26,6 +26,8 @@ ZPADDR0=<$80
|
||||||
ZPADDR1=<$82
|
ZPADDR1=<$82
|
||||||
ZPADDR2=<$84
|
ZPADDR2=<$84
|
||||||
ZPADDR3=<$86
|
ZPADDR3=<$86
|
||||||
|
ZPADDR4=<$88
|
||||||
|
ZPADDR5=<$8a
|
||||||
|
|
||||||
COL_BLACK=0
|
COL_BLACK=0
|
||||||
COL_VIOLET=1
|
COL_VIOLET=1
|
||||||
|
@ -33,6 +35,12 @@ COL_GREEN=2
|
||||||
COL_WHITE=3
|
COL_WHITE=3
|
||||||
|
|
||||||
CHAR_HEIGHT=10
|
CHAR_HEIGHT=10
|
||||||
|
NUM_CHAR_POS=3
|
||||||
|
|
||||||
|
JUMP_SPEED=5
|
||||||
|
GRAVITY=1
|
||||||
|
|
||||||
|
GRID_YPOS=150
|
||||||
|
|
||||||
LINE0 = $2000
|
LINE0 = $2000
|
||||||
LINE1 = LINE0 + 1024
|
LINE1 = LINE0 + 1024
|
||||||
|
@ -234,73 +242,61 @@ LINE191 = LINE190 + 1024
|
||||||
|
|
||||||
; Set up hires screen
|
; Set up hires screen
|
||||||
jsr clearScreen
|
jsr clearScreen
|
||||||
lda TXTCLR
|
|
||||||
lda MIXCLR
|
|
||||||
lda HIRES
|
|
||||||
lda LOWSCR
|
|
||||||
|
|
||||||
lda #COL_VIOLET
|
|
||||||
sta colour
|
|
||||||
@L3:
|
|
||||||
ldx colour
|
|
||||||
ldy #140
|
|
||||||
jsr drawCharacter
|
|
||||||
|
|
||||||
ldx colour
|
|
||||||
ldy #150
|
|
||||||
jsr drawLine
|
|
||||||
ldy #155
|
|
||||||
jsr drawLine
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
@L1:
|
@L1:
|
||||||
jsr _vblWait
|
jsr _vblWait
|
||||||
ldy #150
|
|
||||||
lda colour
|
|
||||||
jsr drawGrid
|
|
||||||
inx
|
|
||||||
cpx #7
|
|
||||||
bne @L2
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
@L2:
|
jsr drawCharacter
|
||||||
|
jsr drawGrid
|
||||||
|
|
||||||
|
jsr updateCharacter
|
||||||
|
jsr updateGrid
|
||||||
|
|
||||||
lda KEYBOARD
|
lda KEYBOARD
|
||||||
bpl @L1
|
bpl @L1
|
||||||
lda STROBE
|
lda STROBE
|
||||||
|
|
||||||
inc colour
|
inc gridColour
|
||||||
lda colour
|
lda gridColour
|
||||||
and #COL_WHITE
|
and #COL_WHITE
|
||||||
sta colour
|
sta gridColour
|
||||||
jmp @L3
|
sta characterColour
|
||||||
|
jmp @L1
|
||||||
|
|
||||||
lda TXTSET
|
lda TXTSET
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Locals
|
|
||||||
colour: .BYTE $00
|
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
_drawCharacter:
|
.proc updateCharacter
|
||||||
|
ldx characterPos
|
||||||
|
inx
|
||||||
|
cpx #NUM_CHAR_POS
|
||||||
|
bne @L1
|
||||||
|
ldx #0
|
||||||
|
@L1:
|
||||||
|
stx characterPos
|
||||||
|
|
||||||
|
rts
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
.proc drawCharacter
|
.proc drawCharacter
|
||||||
|
ldx characterColour
|
||||||
lda colourEvenLookup,x
|
lda colourEvenLookup,x
|
||||||
sta evenVal
|
sta evenVal
|
||||||
lda colourOddLookup,x
|
lda colourOddLookup,x
|
||||||
sta oddVal
|
sta oddVal
|
||||||
|
|
||||||
lda #<characterBitmap
|
ldx characterPos
|
||||||
|
lda characterPosLo,x
|
||||||
sta ZPADDR1
|
sta ZPADDR1
|
||||||
lda #>characterBitmap
|
lda characterPosHi,x
|
||||||
sta ZPADDR1+1
|
sta ZPADDR1+1
|
||||||
|
|
||||||
tya
|
ldy characterY
|
||||||
clc
|
|
||||||
adc #CHAR_HEIGHT
|
|
||||||
sta yBottom
|
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
@L1:
|
@L1:
|
||||||
lda loAddrs,y
|
lda loAddrs,y
|
||||||
|
@ -323,7 +319,7 @@ _drawCharacter:
|
||||||
|
|
||||||
ldy yPos
|
ldy yPos
|
||||||
iny
|
iny
|
||||||
cpy yBottom
|
cpy characterYBottom
|
||||||
bne @L1
|
bne @L1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
@ -332,45 +328,24 @@ _drawCharacter:
|
||||||
evenVal: .BYTE $00
|
evenVal: .BYTE $00
|
||||||
oddVal: .BYTE $00
|
oddVal: .BYTE $00
|
||||||
yPos: .BYTE $00
|
yPos: .BYTE $00
|
||||||
yBottom: .BYTE $00
|
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
.proc drawLine
|
|
||||||
lda colourEvenLookup,x
|
|
||||||
sta evenVal
|
|
||||||
lda colourOddLookup,x
|
|
||||||
sta oddVal
|
|
||||||
|
|
||||||
lda loAddrs,y
|
.proc updateGrid
|
||||||
sta ZPADDR0
|
ldx gridXPos
|
||||||
lda page1HiAddrs,y
|
inx
|
||||||
sta ZPADDR0+1
|
cpx #7
|
||||||
|
|
||||||
ldy #0
|
|
||||||
@L1:
|
|
||||||
lda evenVal
|
|
||||||
sta (ZPADDR0),y
|
|
||||||
iny
|
|
||||||
lda oddVal
|
|
||||||
sta (ZPADDR0),y
|
|
||||||
iny
|
|
||||||
cpy #MAXXBYTE
|
|
||||||
bne @L1
|
bne @L1
|
||||||
|
ldx #0
|
||||||
|
@L1:
|
||||||
|
stx gridXPos
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Locals
|
|
||||||
evenVal: .BYTE $00
|
|
||||||
oddVal: .BYTE $00
|
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
.proc drawGrid
|
.proc drawGrid
|
||||||
sta colour
|
ldy gridY
|
||||||
|
|
||||||
iny
|
|
||||||
lda loAddrs,y
|
lda loAddrs,y
|
||||||
sta ZPADDR0
|
sta ZPADDR0
|
||||||
lda page1HiAddrs,y
|
lda page1HiAddrs,y
|
||||||
|
@ -394,27 +369,49 @@ oddVal: .BYTE $00
|
||||||
lda page1HiAddrs,y
|
lda page1HiAddrs,y
|
||||||
sta ZPADDR3+1
|
sta ZPADDR3+1
|
||||||
|
|
||||||
ldy colour
|
iny
|
||||||
|
lda loAddrs,y
|
||||||
|
sta ZPADDR4
|
||||||
|
lda page1HiAddrs,y
|
||||||
|
sta ZPADDR4+1
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda loAddrs,y
|
||||||
|
sta ZPADDR5
|
||||||
|
lda page1HiAddrs,y
|
||||||
|
sta ZPADDR5+1
|
||||||
|
|
||||||
|
ldx gridXPos
|
||||||
|
ldy gridColour
|
||||||
lda colourEvenLookup,y
|
lda colourEvenLookup,y
|
||||||
and evenGrid,x
|
|
||||||
sta evenVal
|
sta evenVal
|
||||||
|
and evenGrid,x
|
||||||
|
sta evenGridVal
|
||||||
lda colourOddLookup,y
|
lda colourOddLookup,y
|
||||||
and oddGrid,x
|
|
||||||
sta oddVal
|
sta oddVal
|
||||||
|
and oddGrid,x
|
||||||
|
sta oddGridVal
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
@L1:
|
@L1:
|
||||||
lda evenVal
|
lda evenVal
|
||||||
sta (ZPADDR0),y
|
sta (ZPADDR0),y
|
||||||
|
sta (ZPADDR5),y
|
||||||
|
lda evenGridVal
|
||||||
sta (ZPADDR1),y
|
sta (ZPADDR1),y
|
||||||
sta (ZPADDR2),y
|
sta (ZPADDR2),y
|
||||||
sta (ZPADDR3),y
|
sta (ZPADDR3),y
|
||||||
|
sta (ZPADDR4),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda oddVal
|
lda oddVal
|
||||||
sta (ZPADDR0),y
|
sta (ZPADDR0),y
|
||||||
|
sta (ZPADDR5),y
|
||||||
|
lda oddGridVal
|
||||||
sta (ZPADDR1),y
|
sta (ZPADDR1),y
|
||||||
sta (ZPADDR2),y
|
sta (ZPADDR2),y
|
||||||
sta (ZPADDR3),y
|
sta (ZPADDR3),y
|
||||||
|
sta (ZPADDR4),y
|
||||||
iny
|
iny
|
||||||
cpy #MAXXBYTE
|
cpy #MAXXBYTE
|
||||||
bne @L1
|
bne @L1
|
||||||
|
@ -422,9 +419,10 @@ oddVal: .BYTE $00
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Locals
|
; Locals
|
||||||
colour: .BYTE $00
|
evenVal: .BYTE $00
|
||||||
evenVal: .BYTE $00
|
oddVal: .BYTE $00
|
||||||
oddVal: .BYTE $00
|
evenGridVal: .BYTE $00
|
||||||
|
oddGridVal: .BYTE $00
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
@ -450,6 +448,11 @@ oddVal: .BYTE $00
|
||||||
cpx #MAXY
|
cpx #MAXY
|
||||||
bne @L1
|
bne @L1
|
||||||
|
|
||||||
|
lda TXTCLR
|
||||||
|
lda MIXCLR
|
||||||
|
lda HIRES
|
||||||
|
lda LOWSCR
|
||||||
|
|
||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
@ -548,6 +551,7 @@ oddGrid:
|
||||||
|
|
||||||
.align 32
|
.align 32
|
||||||
characterBitmap:
|
characterBitmap:
|
||||||
|
character1Bitmap:
|
||||||
.BYTE $70, $01
|
.BYTE $70, $01
|
||||||
.BYTE $70, $01
|
.BYTE $70, $01
|
||||||
.BYTE $30, $00
|
.BYTE $30, $00
|
||||||
|
@ -559,3 +563,47 @@ characterBitmap:
|
||||||
.BYTE $40, $01
|
.BYTE $40, $01
|
||||||
.BYTE $40, $01
|
.BYTE $40, $01
|
||||||
|
|
||||||
|
.align 32
|
||||||
|
character2Bitmap:
|
||||||
|
.BYTE $70, $01
|
||||||
|
.BYTE $70, $01
|
||||||
|
.BYTE $30, $00
|
||||||
|
.BYTE $3c, $06
|
||||||
|
.BYTE $73, $01
|
||||||
|
.BYTE $30, $00
|
||||||
|
.BYTE $7c, $01
|
||||||
|
.BYTE $43, $07
|
||||||
|
.BYTE $43, $07
|
||||||
|
.BYTE $03, $00
|
||||||
|
|
||||||
|
.align 32
|
||||||
|
character3Bitmap:
|
||||||
|
.BYTE $70, $01
|
||||||
|
.BYTE $70, $01
|
||||||
|
.BYTE $30, $00
|
||||||
|
.BYTE $7c, $01
|
||||||
|
.BYTE $3c, $06
|
||||||
|
.BYTE $70, $01
|
||||||
|
.BYTE $7c, $01
|
||||||
|
.BYTE $3c, $00
|
||||||
|
.BYTE $3f, $00
|
||||||
|
.BYTE $0c, $00
|
||||||
|
|
||||||
|
characterPosLo:
|
||||||
|
.LOBYTES character1Bitmap, character2Bitmap, character3Bitmap
|
||||||
|
|
||||||
|
characterPosHi:
|
||||||
|
.HIBYTES character1Bitmap, character2Bitmap, character3Bitmap
|
||||||
|
|
||||||
|
characterColour: .BYTE COL_VIOLET
|
||||||
|
characterPos: .BYTE $00
|
||||||
|
characterY: .BYTE GRID_YPOS-CHAR_HEIGHT
|
||||||
|
characterYBottom: .BYTE GRID_YPOS
|
||||||
|
characterJumping: .BYTE $00
|
||||||
|
characterYSpeed: .BYTE $00
|
||||||
|
characterFalling: .BYTE $00
|
||||||
|
|
||||||
|
gridColour: .BYTE COL_VIOLET
|
||||||
|
gridY: .BYTE GRID_YPOS
|
||||||
|
gridXPos: .BYTE $00
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user