REM GAME1=AIR-RAID REM GAME2=BANDITS (WESTERN STYLED, DART BETWEEN AND HIDE BEHIND CACTUSES) REM GAME3=TANKS (SLOWER HAS BIGGER BULLETS) REM GAME4-SUBHUNT (A=THROW B=SUBMERGE FOR TIMED BLAST, FARTHER=LONGER TIMED BLAST REM REM SPRITE LIST REM REM BULLETS REM #0 = PLAYER REM #1-7 = ENEMIES REM REM PIECES REM REM #10 = PLAYER REM #11-17 = ENEMIES REM RANDOMIZE TIMER GAMEPAD 1 REM WAS8BIT DIM ES(7),EX(7),DX(7),FY(7),BONUS(7) DIM GWIN(4),GLOSE(4),GTOP(4) FOR I=1 TO 4 GWIN(I)=PEEK($E000+I) NEXT I FOR I=1 TO 4 GLOSE(I)=PEEK($E000+4+I) NEXT I FOR I=1 TO 4 GTOP(I)=PEEKW($E000+8+I*2) NEXT I FOR I=1 TO 7 READ BONUS(I) NEXT I DATA 5,5,100,10,25,0,0 ES(1)=0.2 ES(2)=0.3 ES(3)=1 ES(4)=0.8 ES(5)=0.5 ES(6)=0.1 ES(7)=0.2 SPRITE 11,,1*8,6 SPRITE 11 SIZE 1 SPRITE 12,,3*8,6 SPRITE 12 SIZE 1 SPRITE 13,,5*8,17 SPRITE 14,,6*8,2 SPRITE 14 SIZE 1 SPRITE 15,,8*8,1 SPRITE 16,,9*8,4 SPRITE 16 SIZE 1 SPRITE 17,,11*8,14 SPRITE 17 SIZE 1 FOR I=1 TO 7 EX(I)=161 FY(I)=0 NEXT I PX=45 PD=11 BY=-1 BA=0 PSCORE=0 CSCORE=0 GSPEED=200 ITIME=TIMER+GSPEED XCHAR=15 ICHAR=0 GAMEOVER=0 PLAYERHIT=0 PLAYERWAIT=0 CWIN=200 IGAME=1 TITLE: CLS PAL 3 FOR I=0 TO 8 CELL 5+I,1,48+I NEXT I PAL 1 TEXT 0,0,"A:PLAY B:PICK" TEXT 0,3," GAME W/L TOP" TEXT 0,4," ===================" TEXT 0,5," AIR RAID ##/## ####" TEXT 0,7," ===================" TEXT 0,8," BANDITS ##/## ####" TEXT 0,10," ===================" TEXT 0,11," TANKS ##/## ####" TEXT 0,13," ===================" TEXT 0,14," SUB HUNT ##/## ####" FOR I=1 TO 4 NUMBER 10,2+I*3,GWIN(I),2 NEXT I FOR I=1 TO 4 NUMBER 13,2+I*3,GLOSE(I),2 NEXT I FOR I=1 TO 4 NUMBER 16,2+I*3,GTOP(I),4 NEXT I PAL 0 IGAME=1 CELL 0,5,8 DO IF BUTTON TAP(0,1) THEN ADD IGAME,1,1 TO 4 FOR I=1 TO 4 IF I=IGAME THEN CELL 0,2+I*3,8 ELSE TEXT 0,2+I*3," " END IF NEXT I END IF IF BUTTON TAP(0,0) THEN GOTO PLAYGAMES WAIT VBL LOOP PLAYGAMES: CLS IF IGAME=1 THEN PAL 0 BG FILL 0,14 TO 19,15 CHAR 25 PAL 2 BG FILL 4,0 TO 15,0 CHAR 32 SPRITE 10,45,13*8,PD DO 'GAME OVER TIMER IF TIMER>ITIME THEN ITIME=TIMER+GSPEED INC ICHAR PAL 2 CELL XCHAR,0,32+ICHAR IF ICHAR=8 THEN DEC XCHAR ICHAR=0 IF XCHAR=3 THEN GAMEOVER=1 PLAYERHIT=1 PALETTE 0,2,,, IF PSCORE>CSCORE THEN INC GWIN(IGAME) IF PSCORE>GTOP(IGAME) THEN GTOP(IGAME)=PSCORE ELSE INC GLOSE(IGAME) END IF POKE ($E000+IGAME),GWIN(IGAME) POKE ($E000+4+IGAME),GLOSE(IGAME) POKE ($E000+8+IGAME*2),GTOP(IGAME) END IF END IF END IF IF IGAME=1 THEN GOSUB GAME1 'MOVE PLAYER IF GAMEOVER=0 AND PLAYERHIT=0 THEN LR=LEFT(0) OR RIGHT(0) IF UP TAP(0) AND PD>9 AND NOT LR THEN ADD PD,-1,9 TO 13 IF DOWN TAP(0) AND PD<13 AND NOT LR THEN ADD PD,1,9 TO 13 IF LEFT(0) AND PX>8 THEN DEC PX IF RIGHT(0) AND PX<142 THEN INC PX IF BUTTON TAP(0,0) AND BY<0 THEN BY=100 BX=PX SPRITE 0,BX,BY,26 BA=(PD-11)/2 PLAY 0,20,0 SOUND 0 END IF ELSE IF BUTTON (0,1) THEN GOTO TITLE END IF 'MOVE PLAYER BULLET IF BY>=0 THEN BX=BX+BA DEC BY IF BY<0 THEN STOP 0 SPRITE 0,BX,BY, END IF 'PLAYER WAS HIT IF PLAYERWAIT>0 THEN DEC PLAYERWAIT IF PLAYERWAIT=0 THEN PLAYERHIT=0 PX=45 END IF END IF SPRITE 10,PX,,PD PAL 1 NUMBER 0,0,PSCORE,4 NUMBER 16,0,CSCORE,4 WAIT VBL LOOP GAME1: 'ADD AN ENEMY ONTO THE SCREEN IF RND(10)=0 THEN IE=RND(7) IF EX(IE)>160 THEN II=IE+10 DX(IE)=RND(1)*2-1 IF DX(IE)=1 THEN SPRITE II FLIP 0,0 ELSE SPRITE II FLIP 1,0 IF DX(IE)<0 THEN EX(IE)=160 ELSE EX(IE)=-20 END IF END IF 'PROCESS ALL 7 ENEMIES OR BULLETS FOR I=1 TO 7 II=I+10 'PROCESS ENEMY BULLET IF FY(I)>0 THEN 'MOVE BULLET FY(I)=FY(I)+1 SPRITE I,,FY(I), IF FY(I)>128 THEN FY(I)=0 REM 'HIT PLAYER? IF SPRITE HIT(10,I) THEN CSCORE=CSCORE+CWIN CWIN=CWIN+200 PLAYERHIT=1 PX=160 SPRITE 0,PX,, PLAY 3,70,1 SOUND 3 PLAYERWAIT=60*5 END IF END IF 'PROCESS ENEMY IF EX(I)<=160 THEN 'ENEMY, FIRE BULLET? IF FY(I)=0 AND RND(100)=0 AND EX(I)>0 AND I<5 THEN FY(I)=SPRITE.Y(II)+8 SPRITE I,EX(I)+4,FY(I),27 PLAY 2,40,1 SOUND 2 END IF 'MOVE ENEMY EX(I)=EX(I)+DX(I)*ES(I) SPRITE II,EX(I),, IF EX(I)<-20 THEN EX(I)=161 IF SPRITE HIT(II,0) THEN EX(I)=161 SPRITE II,161,, PSCORE=PSCORE+(12-SPRITE.Y(II)\8)*5+BONUS(I) BY=0 SPRITE 0,,0, PLAY 1,50,1 SOUND 1 END IF END IF NEXT I 'END OF GAME1 ENEMY CODE RETURN #1:MAIN PALETTES 073F1700000B0B0300303C0C00000F2A 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 003E08BEFA1E0000003E08BEFA1E0000 000000000000407F000000000000407F 0000000000007CFE0000000000007CFE 000000000000000003070F0F1F1F1F0F 0000000000000000C0E0F0F0F8F8F8F0 000000000000417F000000000000417F 0000000000E0C0F00000000000E0C0F0 000406FF060400000000000000000000 0080402010387C7C000000000000387C 0020201010387C7C000000000000387C 0010101010387C7C000000000000387C 00040408081C3E3E0000000000001C3E 00010204081C3E3E0000000000001C3E 000000000000000000001FBF7A7FBF1F 00000000000000000000FCFEAFFFFEFC 00000000000000000000000000000000 10085C3E5C08100010085C3E5C081000 7F010307000000007F01030700000000 FEC0800000000000FEC0800000000000 00000000000000000F07030102030000 0000000000000000F0E0C08040C00000 071E380000000000071E380000000000 FC00000000000000FC00000000000000 00000000000000000000000000000000 55AA55AA55AA55AA55AA55AA55AA55AA 38000000000000000000000000000000 000000000000003C000000000000003C 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000203000000000000 000000000000000020E0000000000000 000000FFFF00000000FFFFFFFFFFFF00 000000FFFF00000000FFFFFEFEFFFF00 000000FFFF00000000FFFFFCFCFFFF00 000000FFFF00000000FFFFF8F8FFFF00 000000FFFF00000000FFFFF0F0FFFF00 000000FFFF00000000FFFFE0E0FFFF00 000000FFFF00000000FFFFC0C0FFFF00 000000FFFF00000000FFFF8080FFFF00 000000FFFF00000000FFFF0000FFFF00 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 447F7F7F7F7F7F42BBB7AF9FAEB6BBBD 00FFFFFFFFFFFF00FFFFFF3AD5D537FF 20FFFFFFFFFFFF00DFDFDFC75A5A47FF 08FFFFFFFFFFFF00F7F7E377B7B757FF 30FFFFFFFFFFFF84CFB77B7B027A7A7B 00FFFFFFFFFFFF00FFFFED6BA7EBEDFF 00FFFFFFFFFFFF00FFFFFFBC5B5BACFF 80FFFFFFFFFFFF007F7F635D535F60FF 00FEFEFEFEFEFF00FFFFFFFFFFFF00FF #15:MAIN SOUND 2200F00010F3E0003800F09914F40000 0800606614E70000180030AA01FB0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000