• entries
104
101
• views
252545

# A C64 Game - Step 61

Followers 0

1545 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.

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!

Previous Step Next Step

0
Followers 0

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