Change shot sprite to be up against left edge.

Also fix a bug where some entries of the sprite buffer weren't being
cleared.
This commit is contained in:
Colin McMillen 2015-05-31 15:05:37 -04:00
parent 6eab6050e8
commit eb7757a8b3
2 changed files with 14 additions and 3 deletions

View File

@ -464,13 +464,14 @@ MaybeShoot:
beq MaybeShootDone
jmp -
+
; Enable shot; set its position to player position.
; Enable shot; set its position based on player position.
; TODO(mcmillen): it might be easier/faster to keep N arrays: one for each
; field of shot (shotSpriteArray, shotXArray, shotYArray, ...)
lda #8 ; Sprite number.
sta 0, X
lda playerX
adc #20
sta 1, X
lda playerY
@ -484,12 +485,12 @@ MaybeShoot:
lda nextShotState
cmp #1
beq +
lda #3
lda #2
sta 4, X
inc nextShotState
jmp ++
+
lda #-3
lda #-2
sta 4, X
dec nextShotState
++
@ -660,6 +661,16 @@ UpdateSprites:
cpy #(shotArrayLength * shotSize)
bne -
; Now clear out the unused entries in the sprite table.
-
cpx #spriteTable1Size
beq +
lda #1
sta spriteTableStart, X
.rept 4
inx
.endr
+
rts

Binary file not shown.