
10 REM SPRITE EXAMPLE 1...
20 REM THE HOT AIR BALLOON
30 VIC=13~4096:REM THIS IS WHERE THE VIC REGISTERS
BEGIN
35 POKEVIC+21,1:REM ENABLE SPRITE
0
36 POKEVIC+33, 14:REM SET BACKGROUND COLOR TO LIGHT
BLUE
37 POKEVIC+23,1:REM EXPAND SPRITE 0 IN Y
38 POKEVIC+29,1:REM EXPAND SPRITE 0 IN X
40 POKE2040 ,192:REM SET SPRITE 0~S POINTER
180 POKEVIC+0,100:REM SET SPRITE 0~S X POSITION
190 POKEVIC+l, 100:REM SET SPRITE 0~S Y POSITION
220 POKEVIC+39,1:REM SET SPRITE 0~S COLOR
250 FORY=0T063:REM BYTE COUNTER WITH SPRITE LOOP
300 READA:REM READ IN A BYTE
310 POKE192*64+Y,A:REM STORE THE DATA IN SPRITE
AREA
320 I~EXT'T':REM CLOSE LOOP
330 DX=l:DY=l
340 X=PEEK(VIC):REM LOOK AT SPRITE 0~S X POSITION
350 Y=PEEK(VIC+l):REM LOOK AT SPRITE 0~S Y POSITION
360 IFY=500RY=208THENDY=-DY:REM IF Y IS ON THE
EDGE OF THE....
370 REt1 SCREEN, THEt~ REVERSE DELTA Y
380 IFX=24AND(PEEK(VIC+16)AND1)=0THENDX=-DX:REM IF
SPRITE IS....
390 REM TOUCHIt~GTHE LEFT EDGE (>::=24 At~DTHE MSB
FOR SPRITE 0 IS 0), REVERSE IT
400 IFX=40AND(PEEK(VIC+16)AND1)=lTHENDX=-DX:REM IF
SPRITE IS....
410 REI1 TOUCHI.NG
THE RIGHT EDGE (X=40 AND THE t1SB
FOR SPRITE 0 IS 1), REVERSE IT
420IFX=255ANDDX=lTHENX=-1:SIDE=1
430 REM SWITCH TO OTHER SIDE OF THE SCREEN
440 IFX=0ANDDX=-lTHENX=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 RANOE
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
510 POKEVIC+1,Y:REM PUT NEW Y VALUE INTO SPRITE
0~S 'i POSITION
530 OOT0340
600 REM ***** SPRITE DATA *****
610 DATA0,127,0,1,255,192,3,255,224,3,231,224
620 DATA7,217,240,7,223,240,7,217,240,3,231,224
630 DATA3,255,224,3,255,224,2,255,160, 1,127,64
640 DATAl,62,64,0,156,128,e,156,128,0,73,a,a,73,a
650 DATA0,62,0,0,62,0,0,62,0,0,28,a,0
146 PROGRAMMING GRAPHICS
Komentáře k této Příručce