A C64 Game - Step 49

posted in New Old Things
Published April 07, 2012
Advertisement

Bug fixing time. Don't ever let the bug count get out of hand.

Most enemies wouldn't have a proper hit back effect. Also, some sprites are moving inside the floor visually. We'll fix that in this step.



Hit back works the same for all enemies, so let's make it a new sub routine. The routine is to be called at the start of an enemies custom behaviour code:

;------------------------------------------------------------
;handles simple hitback
;------------------------------------------------------------
!zone HandleHitBack
HandleHitBack
          lda SPRITE_HITBACK,x
          beq .NoHitBack
          dec SPRITE_HITBACK,x
          lda SPRITE_HITBACK_DIRECTION,x
          beq .HitBackRight

          ;move left
          jsr ObjectMoveLeftBlocking
          lda #1
          rts

.HitBackRight
          jsr ObjectMoveRightBlocking
          lda #1
          rts

.NoHitBack
          lda #0
          rts

For every behaviour routine we add this in:


          jsr HandleHitBack
          beq .NoHitBack
          rts

.NoHitBack 

Fortunately, to fix the sprite offset problem we already have the solution in form of a start offset table. We just amend some values (note all the new entries with value 2):


TYPE_START_DELTA_Y
          !byte 0 ;dummy
          !byte 0 ;player dean
          !byte 0 ;bat 1
          !byte 0 ;bat 1
          !byte 0 ;bat 2
          !byte 0 ;mummy
          !byte 0 ;zombie
          !byte 0 ;nasty bat
          !byte 0 ;spider
          !byte 0 ;explosion
          !byte 0 ;player sam
          !byte 2 ;wolf
          !byte 0 ;ghost skeleton
          !byte 2 ;jumping toad
          !byte 0 ;eye
          !byte 0 ;floating ghost
          !byte 0 ;fly
          !byte 2 ;slime
          !byte 2 ;frankenstein
          !byte 2 ;hand
          !byte 2 ;devil
          !byte 0 ;impala 1
          !byte 0 ;impala 2
          !byte 0 ;impala 3
          !byte 0 ;impala driver
          !byte 0 ;impala debris

step49.zip


Previous Step Next Step

Previous Entry A C64 Game - Step 48
0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement