Jump to content

  • Log In with Google      Sign In   
  • Create Account





A C64 Game - Step 61

Posted by Endurion, in C64 28 July 2012 · 880 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.

Attached Image


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

Attached Files






November 2014 »

S M T W T F S
       1
2345678
9101112131415
16171819202122
23242526272829
30      
PARTNERS