rem set debug cyclescore set kernel_options no_blank_lines pfcolors background m=4 data level1music 22, 29, 22, 29, 22, 19, 17, 19, 22, 29 22, 29, 22, 29, 22, 19, 17, 19, 22 16, 22, 16, 14, 13, 14, 13, 14, 16 22, 29, 22, 29, 22, 19, 17, 19, 22 23, 29, 23, 29, 23, 26, 23, 26, 29 22, 29, 22, 29, 22, 19, 17, 19, 22, 29, 22 end data level1notelength 12, 12, 12, 12, 12, 6, 12, 6, 6, 6 12, 12, 12, 12, 12, 6, 12, 6, 12 12, 12, 12, 12, 12, 6, 12, 6, 12 12, 12, 12, 12, 12, 6, 12, 6, 12 12, 12, 12, 12, 12, 6, 12, 6, 12 12, 12, 12, 12, 12, 6, 12, 6, 6, 6 end begin dim byte1=score dim byte2=score+1 dim byte3=score+2 byte2=$BB m=m-1 if m=3 then byte1=$AA if m=2 then byte1=$AB if m=1 then byte1=$BB if m=0 then reboot pfclear a=0 : c=31 : b=9 d=31 : e=8 : f=31 w{5}=0 w{6}=0 : o=0 : i=0 byte3=$67 t=2 : l=0 player0y=100 g=1 : h=31 player1y=100 missile1x=20 : missile1y=73 y{0}=0 : y{1}=0 w{0}=0 x=29 player1: %10011001 %10011001 %01100110 %01100110 %10011001 %10011001 %01100110 %01100110 end main NUSIZ1=$20 COLUP1=$DA COLUPF=$F6 : COLUP0=$5C drawscreen if w{6} then gosub invisibility k=k+1 if k>level1notelength[p] then k=0 : p=p+1 : n=n+1 AUDV1=2 : AUDF1=level1music[n] : AUDC1=1 if n>55 then n=0 : p=0 pfcolors: $AC $AC $AC $AC $AC $AC $AC $AC $AC $AC $84 $84 end missile1height=50 u=(missile1y-9)/8 : v=(missile1x-13)/4 s=(missile1y-2)/8 : q=(missile1x-19)/4 : temp1=s+1 if !w{5} && byte3>$00 then l=l+1 if l>29 then l=0 : t=t+1 : byte3=byte3-$01 if t>9 then byte3=byte3-$06 : t=0 scorecolor=14 if missile1x>142 then reboot if w{5} && missile1x<143 then AUDV0=0 : missile1x=missile1x+3 : goto main_2 if joy0fire && !y{0} then y{1}=1 if y{1} then x=x-2 : missile1y=missile1y-2 : AUDV0=4 : AUDC0=12 : AUDF0=x if x<2 then x=29 : y{1}=0 : y{0}=1 : AUDV0=0 if y{1} && !joy0fire then x=0 : y{1}=0 : y{0}=1 : AUDV0=0 if joy0right && !y{1} && !pfread(v, temp1) then y{0}=1 if joy0left && !y{1} && !pfread(q, temp1) then y{0}=1 if joy0left && missile1x>20 && !pfread(q, s) then missile1x=missile1x-2 if joy0left && missile1x>20 && pfread(q, u) then missile1x=missile1x+2 if joy0right && missile1x<70 && !pfread(v, s) then missile1x=missile1x+2 if joy0right && missile1x>69 && !pfread(v, s) then z=z+1 if joy0right && missile1x>69 && pfread(v, s) then z=0 main_2 temp2=u+1 : temp3=(missile1x-15)/4 if pfread(temp3, temp2) then y{0}=0 NUSIZ1=$20 COLUP1=$DA if w{6} then COLUP1=$D6 COLUPF=$F6 : COLUP0=$5C drawscreen if player0x>10 then gosub move_enemy if y{0} then missile1y=missile1y+2 if switchreset then reboot if collision(player1,missile1) && g<32 then w{6}=1 : player1y=100 if collision(player1,missile1) && g>31 then y{0}=1 : w{5}=1 if missile1y>90 then goto begin if collision(missile1, player0) && !w{6} then goto begin if z>1 then z=0 : goto move_platform goto main move_enemy player0: %10001000 %10001000 %01111111 %11111111 %11111101 %11100000 %10100000 end if w{1} then player0: %00100010 %00100010 %01111111 %11111111 %11111101 %11100000 %10100000 end player0x=player0x-2 if w{1} then w{1}=0 else w{1}=1 move_enemy_2 if !collision(player0,playfield) then player0y=player0y+2 if player0x<20 then o=0 : player0x=9 : player0y=100 : AUDV1=0 return get_new_heights h=31 : a=0 d=31 if g>9 && g<22 then goto get_new_heights_2 if g>21 then goto get_new_heights_4 if g=2 then b=8 : e=7 if g=3 then b=7 : e=6 if g=4 then b=6 : e=8 if g=5 then b=8 : e=8 : h=29 : d=33 if g=6 then b=8 : e=7 : h=31 : a=4 if g=7 then b=7 : e=5 : h=29 : a=0 : d=33 if g=8 then b=5 : e=6 : h=31 : a=4 if g=9 then b=6 : e=7 : h=29 : a=0 : d=33 goto get_new_heights_3 get_new_heights_2 if g=10 then b=7 : e=6 : h=31 : a=4 if g=11 then b=6 : e=9 : a=0 if g=12 then b=9 : e=7 if g=13 then b=7 : e=8 : h=28 : d=34 if g=14 then b=8 : e=9 : a=5 if g=15 then b=9 : e=7 : a=0 if g=16 then b=7 : e=6 if g=17 then b=6 : e=7 if g=18 then b=7 : e=8 if g=19 then b=8 : e=6 if g=20 then b=6 : e=6 : h=28 : a=0 : d=34 if g=21 then b=6 : e=7 : a=5 goto get_new_heights_3 get_new_heights_4 if g=22 then b=7 : e=8 : a=0 if g=23 then b=8 : e=7 if g=24 then b=7 : e=9 : h=29 : a=0 : d=33 if g=25 then b=9 : e=7 : a=4 if g=26 then b=7 : e=8 if g=27 then b=8 : e=6 if g=28 then b=6 : e=7 : h=28 : a=0 : d=34 if g=29 then b=7 : e=8 : h=28 : d=34 : a=5 if g=30 then b=8 : e=9 : h=28 : d=34 : a=5 if g=31 then b=9 : e=9 : a=5 if g=32 then a=0 : player1x=150 : player1y=18 if g>32 then g=32 get_new_heights_3 c=h NUSIZ1=$20 COLUP1=$DA if w{6} then COLUP1=$D6 COLUPF=$F6 : COLUP0=$5C drawscreen enemies if player0x>10 then goto main player0y=100 if g=2 then player0x=150 : player0y=49 if g=4 then player0x=150 : player0y=33 if g=7 then player0x=150 : player0y=33 if g=14 then player0x=150 : player0y=49 if g=15 then player0x=150 : player0y=49 if g=16 then player0x=150 : player0y=41 if g=17 then player0x=150 : player0y=33 if g=19 then player0x=150 : player0y=33 if g=21 then player0x=150 : player0y=33 if g=24 then player0x=150 : player0y=25 if g=26 then player0x=150 : player0y=41 goto main move_platform pfhline a b c off : pfhline d e f off c=c-1 : d=d-1 if c=11 && g=11 then player1y=10 : player1x=150 if a>0 then a=a-1 if player1x>20 then player1x=player1x-4 else player1y=100 if g=32 then player1: %11110 %10001 %10001 %10001 %11110 %00000 %10001 %10001 %10001 %10001 %11110 %00000 %11111 %10000 %11111 %10000 %11111 end if player0y<100 then player0x=player0x-3 if c<1 then g=g+1 : goto get_new_heights goto main invisibility if w{6} then o=o+1 if o>29 then o=0 : i=i+1 if i>9 then i=0 : w{6}=0 return vblank pfhline a b c on if d<32 then pfhline d e f on return