mirror of
https://github.com/jeremysrand/BuGS.git
synced 2024-05-29 08:41:26 +00:00
Some code for adding a spider on the LHS.
This commit is contained in:
parent
4f74d630b9
commit
aa2e5408da
|
@ -7,7 +7,7 @@
|
||||||
<key>Binary.xcscheme_^#shared#^_</key>
|
<key>Binary.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>1</integer>
|
<integer>3</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>BuGS.xcscheme_^#shared#^_</key>
|
<key>BuGS.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
|
@ -17,12 +17,12 @@
|
||||||
<key>DiskImage.xcscheme_^#shared#^_</key>
|
<key>DiskImage.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>2</integer>
|
<integer>1</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>doNotBuild.xcscheme_^#shared#^_</key>
|
<key>doNotBuild.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>3</integer>
|
<integer>2</integer>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
|
|
@ -24,6 +24,20 @@ SPIDER_STATE_RIGHT_DOWN equ 7
|
||||||
SPIDER_STATE_RIGHT_UP equ 8
|
SPIDER_STATE_RIGHT_UP equ 8
|
||||||
SPIDER_STATE_EXPLODING equ 9
|
SPIDER_STATE_EXPLODING equ 9
|
||||||
|
|
||||||
|
|
||||||
|
; A spider only travels in the bottom N rows. This defines that number.
|
||||||
|
SPIDER_NUM_POSSIBLE_ROWS equ 10
|
||||||
|
SPIDER_TOP_ROW equ GAME_NUM_TILES_TALL-SPIDER_NUM_POSSIBLE_ROWS
|
||||||
|
SPIDER_TOP_ROW_OFFSET equ SPIDER_TOP_ROW*GAME_NUM_TILES_WIDE*SIZEOF_TILE_INFO
|
||||||
|
SPIDER_LHS_TILE_OFFSET equ SPIDER_TOP_ROW_OFFSET
|
||||||
|
SPIDER_RHS_TILE_OFFSET equ SPIDER_TOP_ROW_OFFSET+(GAME_NUM_TILES_WIDE-1)*SIZEOF_TILE_INFO
|
||||||
|
|
||||||
|
; The spider starts 2 pixel rows above the top row offset so it can slide in on the edge of
|
||||||
|
; the screen on a diagonal and hit the centre of the tiles with the middle of its body.
|
||||||
|
SPIDER_STARTING_SHIFT equ 2
|
||||||
|
SPIDER_LHS_STARTING_SCREEN_OFFSET equ SCREEN_BYTES_PER_ROW*SPIDER_STARTING_SHIFT+6
|
||||||
|
|
||||||
|
|
||||||
drawSpider entry
|
drawSpider entry
|
||||||
lda spiderState
|
lda spiderState
|
||||||
bne drawSpider_cont
|
bne drawSpider_cont
|
||||||
|
@ -154,7 +168,7 @@ drawSpider_nonGame5 anop
|
||||||
sty numDirtyNonGameTiles
|
sty numDirtyNonGameTiles
|
||||||
|
|
||||||
drawSpider_skipTile5 anop
|
drawSpider_skipTile5 anop
|
||||||
ldx spiderTileOffsets+2
|
ldx spiderTileOffsets+10
|
||||||
lda tiles+TILE_DIRTY_OFFSET,x
|
lda tiles+TILE_DIRTY_OFFSET,x
|
||||||
bne drawSpider_done
|
bne drawSpider_done
|
||||||
lda #TILE_STATE_DIRTY
|
lda #TILE_STATE_DIRTY
|
||||||
|
@ -230,7 +244,36 @@ addSpider entry
|
||||||
lda #SPIDER_STATE_RIGHT_DOWN
|
lda #SPIDER_STATE_RIGHT_DOWN
|
||||||
sta spiderState
|
sta spiderState
|
||||||
|
|
||||||
stz spiderScreenShift
|
lda #1
|
||||||
|
sta spiderScreenShift
|
||||||
|
|
||||||
|
ldx #SPIDER_LHS_TILE_OFFSET
|
||||||
|
stx spiderTileOffsets
|
||||||
|
|
||||||
|
lda tiles+TILE_ABOVE_OFFSET,x
|
||||||
|
sta spiderTileOffsets+2
|
||||||
|
|
||||||
|
lda tiles+TILE_LEFT_OFFSET,x
|
||||||
|
sta spiderTileOffsets+4
|
||||||
|
|
||||||
|
tax
|
||||||
|
lda tiles+TILE_SCREEN_OFFSET_OFFSET,x
|
||||||
|
sec
|
||||||
|
sbc #SPIDER_LHS_STARTING_SCREEN_OFFSET
|
||||||
|
sta spiderScreenOffset
|
||||||
|
|
||||||
|
lda tiles+TILE_ABOVE_OFFSET,x
|
||||||
|
sta spiderTileOffsets+6
|
||||||
|
|
||||||
|
lda tiles+TILE_LEFT_OFFSET,x
|
||||||
|
sta spiderTileOffsets+8
|
||||||
|
|
||||||
|
tax
|
||||||
|
lda tiles+TILE_ABOVE_OFFSET,x
|
||||||
|
sta spiderTileOffsets+10
|
||||||
|
|
||||||
|
lda #SPIDER_STARTING_SHIFT
|
||||||
|
sta spiderShiftInTile
|
||||||
|
|
||||||
; Write this code
|
; Write this code
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user