[Prev] [Next] [Contents] [Commodore] [New] [Search] [Home]

 10 REM SPRITE EXAMPLE 2...
 20 REM THE HOT AIR BALLOON AGAIN
 30 VIC=13*4096:REM THIS IS WHERE THE VIC REGISTERS BEGIN
 35 POKEVIC+21,63:REM ENABLE SPRITES 0 THRU 5
 36 POKEVIC+33,14:REM SET BACKGROUND COLOR TO LIGHT BLUE
 37 POKEVIC+23,3:REM EXPAND SPRITES 0 AND 1 IN Y
 38 POKEVIC+29,3:REM EXPAND SPRITES 0 AND 1 IN X
 40 POKE2040,192:REM SET SPRITE 0'S POINTER
 50 POKE2041,193:REM SET SPRITE 1'S POINTER
 60 POKE2042,192:REM SET SPRITE 2'S POINTER
 70 POKE2043,193:REM SET SPRITE 3'S POINTER
 80 POKE2044,192:REM SET SPRITE 4'S POINTER
 90 POKE2045,193:REM SET SPRITE 5'S POINTER
 100 POKEVIC+4,30:REM SET SPRITE 2'S X POSITION
 110 POKEVIC+5,58:REM SET SPRITE 2'S Y POSITION
 120 POKEVIC+6,65:REM SET SPRITE 3'S X POSITION
 130 POKEVIC+7,58:REM SET SPRITE 3'S Y POSITION
 140 POKEVIC+8,100:REM SET SPRITE 4'S X POSITION
 150 POKEVIC+9,58:REM SET SPRITE 4'S Y POSITION
 160 POKEVIC+10,100:REM SET SPRITE 5'S X POSITION
 170 POKEVIC+11,58:REM SET SPRITE 5'S Y POSITION
 175 PRINT"{WHITE}{CLEAR}"TAB(15)"THIS IS TWO HIRES SPRITES";
 176 PRINTTAB(55)"ON TOP OF EACH OTHER"
 180 POKEVIC+0,100:REM SET SPRITE 0'S X POSITION
 190 POKEVIC+1,100:REM SET SPRITE 0'S Y POSITION
 200 POKEVIC+2,100:REM SET SPRITE 1'S X POSITION
 210 POKEVIC+3,100:REM SET SPRITE 1'S Y POSITION
 220 POKEVIC+39,1:REM SET SPRITE 0'S COLOR
 230 POKEVIC+41,1:REM SET SPRITE 2'S COLOR
 240 POKEVIC+43,1:REM SET SPRITE 4'S COLOR
 250 POKEVIC+40,6:REM SET SPRITE 1'S COLOR
 260 POKEVIC+42,6:REM SET SPRITE 3'S COLOR
 270 POKEVIC+44,6:REM SET SPRITE 5'S COLOR
 280 FORX=192TO193:REM THE START OF THE LOOP THAT DEFINES THE SPRITES
 290 FORY=0TO63:REM BYTE COUNTER WITH SPRITE LOOP
 300 READA:REM READ IN A BYTE
 310 POKEX*64+Y,A:REM STORE THE DATA IN SPRITE AREA
 320 NEXTY,X:REM CLOSE LOOPS
 330 DX=1:DY=1
 340 X=PEEK(VIC):REM LOOK AT SPRITE 0'S X POSITION
 350 Y=PEEK(VIC+1):REM LOOK AT SPRITE 0'S Y POSITION
 360 IFY=50ORY=208THENDY=-DY:REM IF Y IS ON THE EDGE OF THE...
 370 REM SCREEN, THEN REVERSE DELTA Y
 380 IFX=24AND(PEEK(VIC+16)AND1)=0THENDX=-DX:REM IF SPRITE IS...
 390 REM TOUCHING THE LEFT EDGE, THEN REVERSE IT
 400 IFX=40AND(PEEK(VIC+16)AND1)=1THENDX=-DX:REM IF SPRITE IS...
 410 REM TOUCHING THE RIGHT EDGE, THEN REVERSE IT
 420 IFX=255ANDDX=1THENX=-1:SIDE=3
 430 REM SWITCH TO OTHER SIDE OF THE SCREEN
 440 IFX=0ANDDX=-1THENX=256:SIDE=0
 450 REM SWITCH TO OTHER SIDE OF THE SCREEN
 460 X=X+DX:REM ADD DELTA X TO X
 470 X=XAND255:REM MAKE SURE X IS IN ALLOWED RANGE
 480 Y=Y+DY:REM ADD DELTA Y TO Y
 485 POKEVIC+16,SIDE
 490 POKEVIC,X:REM PUT NEW X VALUE INTO SPRITE 0'S X POSITION
 500 POKEVIC+2,X:REM PUT NEW X VALUE INTO SPRITE 1'S X POSITION
 510 POKEVIC+1,Y:REM PUT NEW Y VALUE INTO SPRITE 0'S Y POSITION
 520 POKEVIC+3,Y:REM PUT NEW Y VALUE INTO SPRITE 1'S Y POSITION
 530 GOTO340
 600 REM ***** SPRITE DATA *****
 610 DATA0,255,0,3,153,192,7,24,224,7,56,224,14,126,112,14,126,112,14,126
 620 DATA112,6,126,96,7,56,224,7,56,224,1,56,128,0,153,0,0,90,0,0,56,0
 630 DATA0,56,0,0,0,0,0,0,0,0,126,0,0,42,0,0,84,0,0,40,0,0
 640 DATA0,0,0,0,102,0,0,231,0,0,195,0,1,129,128,1,129,128,1,129,128
 650 DATA1,129,128,0,195,0,0,195,0,4,195,32,2,102,64,2,36,64,1,0,128
 660 DATA1,0,128,0,153,0,0,153,0,0,0,0,0,84,0,0,42,0,0,20,0,0

[Prev] [Next] [Contents] [Commodore] [New] [Search] [Home]
This page has been created by Sami Rautiainen.
Read the small print. Last updated May 12, 2002.