• entries
    104
  • comments
    101
  • views
    255331

A C64 Game - Step 61

Sign in to follow this  
Endurion

1644 views

And a little gimmick: Did you notice the black sewage in some of the later stages? Now it affects everything that's inside, as it's slowing down enemies and the players.

step61.png


The change is surprisingly simple. We have a function named ObjectControl, which is called every frame to update all objects. We simply check if an object is inside sewage. If it is, we skip every fourth update:

          lda DELAYED_GENERIC_COUNTER
          and #$03
          bne +

          ;check if we're in water
          ldy SPRITE_CHAR_POS_Y,x
          lda SCREEN_LINE_OFFSET_TABLE_LO,y
          sta ZEROPAGE_POINTER_1
          lda SCREEN_BACK_LINE_OFFSET_TABLE_HI,y
          sta ZEROPAGE_POINTER_1 + 1
          lda SPRITE_CHAR_POS_X,x
          tay
          lda (ZEROPAGE_POINTER_1),y
          cmp #111
          beq .NextObject

+
          ldy SPRITE_ACTIVE,x
          ... update object


The update calls are still fast enough so no joystick movements are skipped. Yay!

step61.zip

Previous Step Next Step

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now