DIM TSHIP(9),CSHIP(9),XSHIP(9),YSHIP(9),ASHIP(9),RSHIP(9),DASHIP(9),DRSHIP(9) GLOBAL XATTACK,YATTACK,XHERO,YHERO,ILEVEL,ISTAGE,ILIVES,IWAVEY,FIRE1,FIRE2 REM ASTEROIDS REM LEVELS 0-9 REM STAGE1: EYES+HEARTS REM STAGE2: TRIANGLES REM STAGE3: SQUARES REM STAGE4: SUN,MOON,STAR RANDOMIZE TIMER REM WAS8BIT GAMEPAD 1 GOTO SKIPINTRO BG 1 FOR Y=0 TO 5 FOR X=0 TO 15 CELL X+2,Y+1,X+Y*16 CELL X+2,Y+9,X+Y*16 WAIT VBL PLAY 0,1,1 NEXT X NEXT Y PLAY 0,30,30 PLAY 1,42,30 PLAY 2,54,30 PLAY 3,66,30 WAIT 60 PLAY 1,90,180 SOUND 1 FOR I=1 TO 900 IWAVEY=I ON RASTER CALL WAVEY S=I MOD 90 PLAY 0,S,1 SOUND 1 IF BUTTON(0,0) THEN GOTO SKIP1 WAIT VBL NEXT I SUB WAVEY W=(RASTER+IWAVEY) MOD 10 WW=1+IWAVEY/50 SCROLL 1,5*WW-W*WW,0 END SUB SKIP1: WAIT 30 CLS PLAY 1,60,60 SOUND 1 BG 1 SCROLL 1,0,0 ON RASTER OFF TEXT 0,18,"LONG AGO & FAR AWAY" TEXT 0,20,"BATTLED NIGHT VS DAY" TEXT 0,22,"WITH FLASHES AND DIN" TEXT 0,24,"WHO MAY HAVE THE WIN" TEXT 0,26,"A HERO, IN TIME SEND" TEXT 0,28,"YOU! IS IT THE END?" TEXT 0,31,">> SPACE ODD-ESSY <<" FOR Y=0 TO 220 SCROLL 1,0,Y IF BUTTON(0,0) THEN GOTO SKIP2 WAIT 6 NEXT Y SKIP2: CLS PLAY 0,90,90 REM END OF INTRO SKIPINTRO: XHERO=0 YHERO=50 SPRITE 0,XHERO,YHERO,32 SPRITE 0 SIZE 1 NEWGAME: ILEVEL=-1 ISTAGE=-1 ILIVES=9 LEVEL: INC ILEVEL STAGE: ADD ISTAGE,1,0 TO 4 SPRITE 10 SIZE 1 CALL NUMBERS REM ASTEROIDS FOR I=10 TO 63 SPRITE I SIZE 1 NEXT I SPRITE 10,160,16+RND(100),64 DO IF UP(0) AND YHERO>-3 THEN DEC YHERO IF DOWN(0) AND YHERO<116 THEN INC YHERO IF LEFT(0) AND XHERO>0 THEN DEC XHERO IF RIGHT(0) AND XHERO<145 THEN INC XHERO IF BUTTON(0,0) THEN CALL HEROFIRE SPRITE 0,XHERO,YHERO, IF SPRITE HIT(0) THEN DEC ILIVES CALL NUMBERS END IF IF SPRITE.X(1)>0 THEN SPRITE 1,SPRITE.X(1)+2,, IF SPRITE.X(1)>160 THEN SPRITE 1,-32,, SPRITE 1,SPRITE.X(1),, IF SPRITE HIT(1,10 TO 63) THEN SPRITE 1,-32,, PLAY 3,60,3 SOUND 3 SHIT=SPRITE.C(HIT) IF SHIT<80 THEN CALL ADDROCK(SHIT,HIT) END IF END IF FOR I=10 TO 63 XSPR=SPRITE.X(I) IF XSPR>-16 THEN ADD XSPR,-1,-15 TO 160 SPRITE I,XSPR,, END IF NEXT I WAIT VBL LOOP SUB ADDROCK(C,SPR) TRACE SPR I=10 N1=1 N2=1 XX=SPRITE.X(SPR) Y1=SPRITE.Y(SPR) Y2=SPRITE.Y(SPR) DY1=20+RND(20) DY2=20+RND(20) DX1=0-RND(25) DX2=0-RND(25) FOR Z=1 TO DY1 ADD Y1,-1,8 TO 100 NEXT Z FOR Z=1 TO DY2 ADD Y2,1,8 TO 100 NEXT Z WHILE N1>0 AND I<64 AND C<78 IF SPRITE.X(I)=-32 THEN N1=0 SPRITE I,XX+DX1,Y1,C+2 END IF INC I WEND WHILE N2>0 AND I<64 AND C<78 IF SPRITE.X(I)=-32 THEN N2=0 SPRITE I,XX+DX2,Y2,C+2 END IF INC I WEND SPRITE SPR,-32,, TRACE I END SUB REM SPRITE 10,200,RND(120),46 DO CALL MOVESPRITES IF UP(0) AND YHERO>5 THEN DEC YHERO IF DOWN(0) AND YHERO<116 THEN INC YHERO IF LEFT(0) AND XHERO>0 THEN DEC XHERO IF RIGHT(0) AND XHERO<145 THEN INC XHERO IF BUTTON(0,0) THEN CALL HEROFIRE SPRITE 0,XHERO,YHERO, IF SPRITE HIT(0,10) THEN INC ILIVES IF ISTAGE<5 THEN GOTO STAGE ELSE GOTO LEVEL ELSE IF SPRITE.X(10)<16 THEN IF ISTAGE<5 THEN GOTO STAGE ELSE GOTO LEVEL END IF WAIT VBL LOOP SUB MOVESPRITES SPRITE 10,SPRITE.X(10)-1,, END SUB SUB HEROFIRE IF SPRITE.X(1)=-32 THEN SPRITE 1,XHERO+4,YHERO+9,1 PLAY 2,70,1 SOUND 2 END IF END SUB SUB NUMBERS BG 0 TEXT 0,0,STR$(ILEVEL)+"."+STR$(ISTAGE)+"."+STR$(ILIVES) END SUB #1:MAIN PALETTES 003F2A15003B3020003C0C00003F3C00 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 2050A850200000002070D87020000000 00000000030F1F3F000000071C3163C7 00000000C0F0F8FC000000E0388CC6E3 000000FF7F7B251A00000000201C1E07 000000FEFCBC48B0000000000870F0C0 00000001030F183F000000000000070F 083878B8B858B8780000106060E0C080 00003F3F3B353A3D000000100C0E0703 0000FCFCDCAC5CBC000000083070E0C0 8800230F9F193D3F0000000000060200 1100C4F0F998BCFC0000000000604000 8800230F9F1F3E3E0000000000000000 0000C0E090000000000000000000D850 00000000013C0E070000000000030100 00008080C09EB8F00000000000604000 3C0099A5A599003C3C4281818181423C 3C0091A99589003C3C4281818181423C 3F1F0F0300000000C763311C07000000 FCF8F0C000000000E3C68C38E0000000 1D0D0507030100000303030100000000 706040C0800000008080800000000000 180F0301000000000700000000000000 B858B8B878380800C0E0606010000000 3D3A353B3F3F000003070E0C10000000 BC5CACDCFCFC0000C0E0703008000000 3F3F1E9F0F2300880000010000000000 FCFC78F9F0C400110000800000000000 3E3E1F9F0F2300880000000000000000 00000080E0C000000000600000000000 07070C18100000000000000000000000 70F0180C040000008000000000000000 00000000F87038FC00000000000E07C3 000000000000007E0000000000000080 001C20408000001F000000071F3F7FE7 00380402010000F8000000E0F8FCFEE7 00101C1E1D1D1A1D0000000806060703 0000000080C0F01800000000000000E0 000000010302060E0000000000010101 000080C0E0A0B0B80000000080C0C0C0 0103070D1D3D7DE1000001030303031F 80C0E070787C06FF000000808080F8FC 00500400481204000040240200102400 00120022104420000002442000440800 00042208440048000010220004224000 00500400481204000040240200102400 1C224180888C8F851C225DB6A3A0A0B0 384482011131F1A13844BA6DC505050D FF3F70FC00000000E03F70E000000000 FE000000000000000000000000000000 1F00008040201C00E77F3F1F07000000 F800000102043800E7FEFCF8E0000000 1E1D1A1D1D1E1C100103070606080000 FC18F0C080000000F0E0000000000000 0D123D3F7F000000030F0E1000000000 58A4DEFEFF000000E078380400000000 FF603E1E0E0703013F1F010101000000 87BEBCB8B0E0C080F8C0C0C0C0800000 00042208440048000010220004224000 0020481200200A000024080040240200 0020481200200A000024080040240200 00120022104420000002442000440800 454321100804020150582C160B050201 A2C28408102040800A1A3468D0A04080 0718204040808080071F3F7F7FFFFFFF E018040202010101E0F8FCFEFEFFFFFF 000718202040404000071F3F3F7F7F7F 00E018040402020200E0F8FCFCFEFEFE 00000708102020200000070F1F3F3F3F 0000E010080404040000E0F0F8FCFCFC 000000030C081010000000030F0F1F1F 000000C030100808000000C0F0F0F8F8 00000000030408080000000003070F0F 00000000C020101000000000C0E0F0F0 0000000001060408000000000107070F 00000000806020100000000080E0E0F0 00000000000102040000000000010307 0000000000804020000000000080C0E0 00000000000001020000000000000103 000000000000804000000000000080C0 8080804040201807FFFFFF7F7F3F1F07 01010102020418E0FFFFFFFEFEFCF8E0 40404020201807007F7F7F3F3F1F0700 020202040418E000FEFEFEFCFCF8E000 20202010080700003F3F3F1F0F070000 0404040810E00000FCFCFCF8F0E00000 1010080C030000001F1F0F0F03000000 08081030C0000000F8F8F0F0C0000000 08080403000000000F0F070300000000 101020C000000000F0F0E0C000000000 08040601000000000F07070100000000 1020608000000000F0E0E08000000000 04020100000000000703010000000000 2040800000000000E0C0800000000000 02010000000000000301000000000000 4080000000000000C080000000000000 #15:MAIN SOUND 0800000F000000003800F0AA003A0900 2500606014F300003800309919000000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000