mirror of
https://github.com/jeremysrand/BuGS.git
synced 2024-06-10 23:29:30 +00:00
Some more work on spider animation.
This commit is contained in:
parent
aa2e5408da
commit
45bc6641e6
|
@ -14,15 +14,15 @@ gameSpider start
|
||||||
using globalData
|
using globalData
|
||||||
|
|
||||||
SPIDER_STATE_NONE equ 0
|
SPIDER_STATE_NONE equ 0
|
||||||
SPIDER_STATE_LEFT_DIAG_DOWN equ 1
|
SPIDER_STATE_EXPLODING equ 1
|
||||||
SPIDER_STATE_LEFT_DIAG_UP equ 2
|
SPIDER_STATE_LEFT_DIAG_DOWN equ 2
|
||||||
SPIDER_STATE_LEFT_DOWN equ 3
|
SPIDER_STATE_LEFT_DIAG_UP equ 3
|
||||||
SPIDER_STATE_LEFT_UP equ 4
|
SPIDER_STATE_LEFT_DOWN equ 4
|
||||||
SPIDER_STATE_RIGHT_DIAG_DOWN equ 5
|
SPIDER_STATE_LEFT_UP equ 5
|
||||||
SPIDER_STATE_RIGHT_DIAG_UP equ 6
|
SPIDER_STATE_RIGHT_DIAG_DOWN equ 6
|
||||||
SPIDER_STATE_RIGHT_DOWN equ 7
|
SPIDER_STATE_RIGHT_DIAG_UP equ 7
|
||||||
SPIDER_STATE_RIGHT_UP equ 8
|
SPIDER_STATE_RIGHT_DOWN equ 8
|
||||||
SPIDER_STATE_EXPLODING equ 9
|
SPIDER_STATE_RIGHT_UP equ 9
|
||||||
|
|
||||||
|
|
||||||
; A spider only travels in the bottom N rows. This defines that number.
|
; A spider only travels in the bottom N rows. This defines that number.
|
||||||
|
@ -233,19 +233,154 @@ jumpInst jmp >spider1
|
||||||
|
|
||||||
|
|
||||||
updateSpider entry
|
updateSpider entry
|
||||||
|
lda spiderState
|
||||||
|
bne updateSpider_cont
|
||||||
|
rtl
|
||||||
|
|
||||||
|
updateSpider_cont anop
|
||||||
|
|
||||||
|
dec a
|
||||||
|
beq updateSpider_exploding
|
||||||
|
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda spiderSprite
|
||||||
|
beq updateSpider_resetSprite
|
||||||
|
sec
|
||||||
|
sbc #$4
|
||||||
|
sta spiderSprite
|
||||||
|
bra updateSpider_testState
|
||||||
|
|
||||||
|
updateSpider_resetSprite anop
|
||||||
|
lda #SPIDER_SPRITE_LAST_OFFSET
|
||||||
|
sta spiderSprite
|
||||||
|
|
||||||
|
updateSpider_testState anop
|
||||||
|
tya
|
||||||
|
dec a
|
||||||
|
beq updateSpider_leftDiagDown
|
||||||
|
|
||||||
|
dec a
|
||||||
|
beq updateSpider_leftDiagUp
|
||||||
|
|
||||||
|
dec a
|
||||||
|
beq updateSpider_leftDown
|
||||||
|
|
||||||
|
dec a
|
||||||
|
beq updateSpider_leftUp
|
||||||
|
|
||||||
|
dec a
|
||||||
|
beq updateSpider_rightDiagDown
|
||||||
|
|
||||||
|
dec a
|
||||||
|
beq updateSpider_rightDiagUp
|
||||||
|
|
||||||
|
dec a
|
||||||
|
beq updateSpider_rightDown
|
||||||
|
|
||||||
|
bra updateSpider_rightUp
|
||||||
|
|
||||||
|
updateSpider_exploding anop
|
||||||
|
lda spiderSprite
|
||||||
|
beq updateSpider_explosionDone
|
||||||
|
sec
|
||||||
|
sbc #$4
|
||||||
|
sta spiderSprite
|
||||||
|
rtl
|
||||||
|
|
||||||
|
updateSpider_explosionDone anop
|
||||||
|
stz spiderState
|
||||||
|
rtl
|
||||||
|
|
||||||
|
|
||||||
|
updateSpider_leftDiagDown anop
|
||||||
|
updateSpider_leftDiagUp anop
|
||||||
|
updateSpider_leftDown anop
|
||||||
|
updateSpider_leftUp anop
|
||||||
|
updateSpider_rightDiagUp anop
|
||||||
|
updateSpider_rightDown anop
|
||||||
|
updateSpider_rightUp anop
|
||||||
; Write this code
|
; Write this code
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
|
updateSpider_rightDiagDown anop
|
||||||
|
jsl waitForKey
|
||||||
|
lda spiderScreenOffset
|
||||||
|
clc
|
||||||
|
adc #SCREEN_BYTES_PER_ROW
|
||||||
|
sta spiderScreenOffset
|
||||||
|
|
||||||
|
lda spiderScreenShift
|
||||||
|
eor #1
|
||||||
|
sta spiderScreenShift
|
||||||
|
bne updateSpider_rightDiagDown_skipInc
|
||||||
|
inc spiderScreenOffset
|
||||||
|
|
||||||
|
updateSpider_rightDiagDown_skipInc anop
|
||||||
|
|
||||||
|
lda spiderShiftInTile
|
||||||
|
dec a
|
||||||
|
sta spiderShiftInTile
|
||||||
|
beq updateSpider_tilesDown
|
||||||
|
|
||||||
|
cmp #5
|
||||||
|
beq updateSpider_tilesRight
|
||||||
|
rtl
|
||||||
|
|
||||||
|
updateSpider_tilesRight anop
|
||||||
|
ldx spiderTileOffsets+4
|
||||||
|
cmp #RHS_FIRST_TILE_OFFSET
|
||||||
|
bge updateSpider_offScreen
|
||||||
|
stx spiderTileOffsets+8
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+6
|
||||||
|
stx spiderTileOffsets+10
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+2
|
||||||
|
stx spiderTileOffsets+6
|
||||||
|
lda tiles+TILE_RIGHT_OFFSET,x
|
||||||
|
sta spiderTileOffsets+2
|
||||||
|
|
||||||
|
ldx spiderTileOffsets
|
||||||
|
stx spiderTileOffsets+4
|
||||||
|
lda tiles+TILE_RIGHT_OFFSET,x
|
||||||
|
sta spiderTileOffsets
|
||||||
|
|
||||||
|
rtl
|
||||||
|
|
||||||
|
updateSpider_tilesDown anop
|
||||||
|
ldx spiderTileOffsets
|
||||||
|
stx spiderTileOffsets+2
|
||||||
|
lda tiles+TILE_BELOW_OFFSET,x
|
||||||
|
cmp #INVALID_TILE_NUM
|
||||||
|
beq updateSpider_offScreen
|
||||||
|
sta spiderTileOffsets
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+4
|
||||||
|
stx spiderTileOffsets+6
|
||||||
|
lda tiles+TILE_BELOW_OFFSET,x
|
||||||
|
sta spiderTileOffsets+4
|
||||||
|
|
||||||
|
ldx spiderTileOffsets+8
|
||||||
|
stx spiderTileOffsets+10
|
||||||
|
lda tiles+TILE_BELOW_OFFSET,x
|
||||||
|
sta spiderTileOffsets+8
|
||||||
|
|
||||||
|
rtl
|
||||||
|
|
||||||
|
updateSpider_offScreen anop
|
||||||
|
stz spiderState
|
||||||
|
rtl
|
||||||
|
|
||||||
|
|
||||||
addSpider entry
|
addSpider entry
|
||||||
lda spiderState
|
lda spiderState
|
||||||
bne addSpider_done
|
bne addSpider_done
|
||||||
|
|
||||||
lda #SPIDER_STATE_RIGHT_DOWN
|
lda #SPIDER_STATE_RIGHT_DIAG_DOWN
|
||||||
sta spiderState
|
sta spiderState
|
||||||
|
|
||||||
lda #1
|
stz spiderScreenShift
|
||||||
sta spiderScreenShift
|
|
||||||
|
|
||||||
ldx #SPIDER_LHS_TILE_OFFSET
|
ldx #SPIDER_LHS_TILE_OFFSET
|
||||||
stx spiderTileOffsets
|
stx spiderTileOffsets
|
||||||
|
@ -272,9 +407,12 @@ addSpider entry
|
||||||
lda tiles+TILE_ABOVE_OFFSET,x
|
lda tiles+TILE_ABOVE_OFFSET,x
|
||||||
sta spiderTileOffsets+10
|
sta spiderTileOffsets+10
|
||||||
|
|
||||||
lda #SPIDER_STARTING_SHIFT
|
lda #7
|
||||||
sta spiderShiftInTile
|
sta spiderShiftInTile
|
||||||
|
|
||||||
|
lda #SPIDER_SPRITE_LAST_OFFSET
|
||||||
|
sta spiderSprite
|
||||||
|
|
||||||
; Write this code
|
; Write this code
|
||||||
|
|
||||||
addSpider_done anop
|
addSpider_done anop
|
||||||
|
@ -292,6 +430,9 @@ spiderScreenOffset dc i2'0'
|
||||||
spiderScreenShift dc i2'0'
|
spiderScreenShift dc i2'0'
|
||||||
spiderShiftInTile dc i2'0'
|
spiderShiftInTile dc i2'0'
|
||||||
|
|
||||||
|
|
||||||
|
; 10 6 2
|
||||||
|
; 8 4 0
|
||||||
spiderTileOffsets dc i2'0'
|
spiderTileOffsets dc i2'0'
|
||||||
dc i2'0'
|
dc i2'0'
|
||||||
dc i2'0'
|
dc i2'0'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user