keen: move some code around
This commit is contained in:
parent
a165ba864b
commit
a3fae54b94
|
@ -98,3 +98,66 @@ laser_sideways_sprite:
|
||||||
; .byte $3A,$cA,$3A,$cA
|
; .byte $3A,$cA,$3A,$cA
|
||||||
.byte $A3,$Ac,$A3,$Ac
|
.byte $A3,$Ac,$A3,$Ac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; laser enemies
|
||||||
|
;=======================
|
||||||
|
; see if laser hits any enemies
|
||||||
|
laser_enemies:
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
laser_enemies_loop:
|
||||||
|
|
||||||
|
; see if out
|
||||||
|
|
||||||
|
lda enemy_data+ENEMY_DATA_OUT,Y
|
||||||
|
beq done_laser_enemy
|
||||||
|
|
||||||
|
; get local tilemap co-ord
|
||||||
|
sec
|
||||||
|
lda enemy_data+ENEMY_DATA_TILEX,Y
|
||||||
|
sbc TILEMAP_X
|
||||||
|
|
||||||
|
sta TILE_TEMP
|
||||||
|
|
||||||
|
sec
|
||||||
|
lda enemy_data+ENEMY_DATA_TILEY,Y
|
||||||
|
sbc TILEMAP_Y
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
clc
|
||||||
|
adc TILE_TEMP
|
||||||
|
|
||||||
|
cmp LASER_TILE
|
||||||
|
bne done_laser_enemy
|
||||||
|
|
||||||
|
; hit something
|
||||||
|
hit_something:
|
||||||
|
lda #0
|
||||||
|
sta LASER_OUT
|
||||||
|
sta FRAMEL
|
||||||
|
; sta enemy_data+ENEMY_DATA_OUT,Y
|
||||||
|
lda #1
|
||||||
|
sta enemy_data+ENEMY_DATA_EXPLODING,Y
|
||||||
|
|
||||||
|
; jsr enemy_noise
|
||||||
|
|
||||||
|
; jsr inc_score_by_10
|
||||||
|
|
||||||
|
jmp exit_laser_enemy
|
||||||
|
|
||||||
|
done_laser_enemy:
|
||||||
|
|
||||||
|
tya
|
||||||
|
clc
|
||||||
|
adc #8
|
||||||
|
tay
|
||||||
|
cpy #(NUM_ENEMIES*8)
|
||||||
|
bne laser_enemies_loop
|
||||||
|
exit_laser_enemy:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ keen_loop:
|
||||||
|
|
||||||
jsr move_keen
|
jsr move_keen
|
||||||
|
|
||||||
; jsr move_enemies
|
jsr move_enemies
|
||||||
|
|
||||||
jsr move_laser
|
jsr move_laser
|
||||||
|
|
||||||
|
|
|
@ -1,89 +1,42 @@
|
||||||
NUM_ENEMIES = 4
|
NUM_ENEMIES = 4
|
||||||
|
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; laser enemies
|
; move enemies
|
||||||
;=======================
|
;=======================
|
||||||
; see if laser hits any enemies
|
|
||||||
laser_enemies:
|
move_enemies:
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
laser_enemies_loop:
|
|
||||||
|
|
||||||
; see if out
|
move_enemies_loop:
|
||||||
|
|
||||||
|
; only move if out
|
||||||
|
|
||||||
lda enemy_data+ENEMY_DATA_OUT,Y
|
lda enemy_data+ENEMY_DATA_OUT,Y
|
||||||
beq done_laser_enemy
|
beq done_move_enemy
|
||||||
|
|
||||||
; get local tilemap co-ord
|
; check if falling
|
||||||
sec
|
|
||||||
lda enemy_data+ENEMY_DATA_TILEX,Y
|
|
||||||
sbc TILEMAP_X
|
|
||||||
|
|
||||||
sta TILE_TEMP
|
|
||||||
|
|
||||||
sec
|
; check if moving right/left
|
||||||
lda enemy_data+ENEMY_DATA_TILEY,Y
|
|
||||||
sbc TILEMAP_Y
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
clc
|
|
||||||
adc TILE_TEMP
|
|
||||||
|
|
||||||
cmp LASER_TILE
|
; lda enemy_data+ENEMY_DATA_X,Y
|
||||||
bne done_laser_enemy
|
; clc
|
||||||
|
; adc #1
|
||||||
|
; sta enemy_data+ENEMY_DATA_X,Y
|
||||||
|
|
||||||
; hit something
|
; cmp #36
|
||||||
hit_something:
|
; bcc done_move_enemy
|
||||||
lda #0
|
|
||||||
sta LASER_OUT
|
; lda #0
|
||||||
sta FRAMEL
|
|
||||||
; sta enemy_data+ENEMY_DATA_OUT,Y
|
; sta enemy_data+ENEMY_DATA_OUT,Y
|
||||||
lda #1
|
|
||||||
sta enemy_data+ENEMY_DATA_EXPLODING,Y
|
|
||||||
|
|
||||||
; jsr enemy_noise
|
done_move_enemy:
|
||||||
|
|
||||||
; jsr inc_score_by_10
|
iny
|
||||||
|
cpy #NUM_ENEMIES
|
||||||
jmp exit_laser_enemy
|
bne move_enemies_loop
|
||||||
|
|
||||||
done_laser_enemy:
|
|
||||||
|
|
||||||
tya
|
|
||||||
clc
|
|
||||||
adc #8
|
|
||||||
tay
|
|
||||||
cpy #(NUM_ENEMIES*8)
|
|
||||||
bne laser_enemies_loop
|
|
||||||
exit_laser_enemy:
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; move enemy
|
|
||||||
;=======================
|
|
||||||
; which one is in Y
|
|
||||||
|
|
||||||
|
|
||||||
; assume yorp for now
|
|
||||||
move_enemy:
|
|
||||||
|
|
||||||
lda enemy_data+ENEMY_DATA_X,Y
|
|
||||||
clc
|
|
||||||
adc #1
|
|
||||||
sta enemy_data+ENEMY_DATA_X,Y
|
|
||||||
|
|
||||||
cmp #36
|
|
||||||
bcc move_enemy_good
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta enemy_data+ENEMY_DATA_OUT,Y
|
|
||||||
|
|
||||||
|
|
||||||
move_enemy_good:
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -201,10 +154,6 @@ draw_enemy:
|
||||||
pla
|
pla
|
||||||
tay
|
tay
|
||||||
|
|
||||||
; also move enemy
|
|
||||||
|
|
||||||
jsr move_enemy
|
|
||||||
|
|
||||||
done_draw_enemy:
|
done_draw_enemy:
|
||||||
|
|
||||||
tya
|
tya
|
||||||
|
@ -218,16 +167,6 @@ done_draw_enemy:
|
||||||
exit_draw_enemy:
|
exit_draw_enemy:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.if 0
|
|
||||||
enemy_sprites:
|
|
||||||
.word enemy_camera_sprite1
|
|
||||||
.word enemy_camera_sprite2
|
|
||||||
.word enemy_crawler_sprite1
|
|
||||||
.word enemy_crawler_sprite2
|
|
||||||
.word enemy_bot_sprite1
|
|
||||||
.word enemy_bot_sprite2
|
|
||||||
.endif
|
|
||||||
|
|
||||||
enemy_explosion_sprites:
|
enemy_explosion_sprites:
|
||||||
.word enemy_explosion_sprite1
|
.word enemy_explosion_sprite1
|
||||||
.word enemy_explosion_sprite1
|
.word enemy_explosion_sprite1
|
||||||
|
@ -249,10 +188,6 @@ enemy_explosion_sprite3:
|
||||||
.byte $7A,$5A
|
.byte $7A,$5A
|
||||||
.byte $A5,$A7
|
.byte $A5,$A7
|
||||||
|
|
||||||
;ENEMY_CAMERA = 0
|
|
||||||
;ENEMY_CRAWLER = 4
|
|
||||||
;ENEMY_BOT = 8
|
|
||||||
|
|
||||||
ENEMY_YORP = 0
|
ENEMY_YORP = 0
|
||||||
|
|
||||||
ENEMY_DATA_OUT = 0
|
ENEMY_DATA_OUT = 0
|
||||||
|
|
Loading…
Reference in New Issue