PROC WAIT(CARD N); Proc. Pausa FOR I=0 TO N+N DO OD RETURN
PROC TITLE() ; Proc. titulos SC=0 ML=0 GRAPHICS(2+16) POSITION(5,2) PRINTDE(6,"dArKsTaR") POSITION(5,4) PRINTDE(6,"Ejemplo") POSITION(1,6) PRINTDE(6," Gamer en action!") POSITION(0,09) PRINTDE(6," pUlSe BoToN") DO FOR CTR=1 TO 10 DO INCCLR=CHGCLR INCCLR1=CHGCLR DO S=STRIG(0) IF S=0 THEN RETURN FI WSYNC=0 CLR=INCCLR CLR1=INCCLR1 CLR2=INCCLR+10 INCCLR==+1 INCCLR1==-1 UNTIL VCOUNT&128 OD OD CHGCLR==+1 OD
PROC MAIN() ; Proc. central INT XX=[1],YY=[0],SS,X,Y,Q BYTE Z,E,E1,A1,B1,D,C=[0] BYTE A,B X=50 Y=50 GRAPHICS(7) COLOR=2 ; Dibuja bordes SNDRST() PLOT(1,1) DRAWTO(158,1) DRAWTO(158,79) DRAWTO(1,79) DRAWTO(1,1) BOX() ; Ciclo de colision DO Z=LOCATE(X,Y) IF Z=1 THEN ; Haz golpeado al enemigo FOR E=1 TO 20 DO WAIT(50) SOUND(0,E,08,10) SETCOLOR(2,E,10) OD SNDRST() BOX() SC==+10 SETCOLOR(2,0,0) FI IF Z=2 THEN ; Te han golpeado FOR D=1 TO 35 DO COLOR=C SOUND(0,D,8,10) C==+1 SETCOLOR(2,D,C) SETCOLOR(0,C,D) SETCOLOR(1,A1,B1) IF C=4 THEN C=1 FI A1=RAND(153) B1=RAND(78) PLOT(X,Y) DRAWTO(A1,B1) OD ML==+1 SNDRST() IF ML>2 THEN ; Si tiene vidas ML=0 GRAPHICS(2+16) POSITION(4,4) PRINTD(6,"GAME OVER") POSITION(4,5) PRINTD(6,"PUNTAJE: ") PRINTBDE(6,SC) FOR X=0 TO 242 STEP 2 DO WAIT(500) SOUND(0,X+1,10,10) SOUND(1,X+2,10,10) SOUND(2,X+3,10,10) SOUND(3,X+4,10,10) SETCOLOR(0,X,10) OD WAIT(32000) ; Tiempo de pausa SC=0 TITLE() FI MAIN() FI Q==+1 SETCOLOR(1,Q,14) COLOR=2 PLOT(X,Y) SS=STICK(0) ; Leyendo JOYSTICK IF SS=14 THEN XX=0 YY=-1 ELSEIF SS=13 THEN XX=0 YY=1 ELSEIF SS=11 THEN XX=-1 YY=0 ELSEIF SS=7 THEN XX=1 YY=0 FI WAIT(350) ; Cambia este valor si ; lo quiere mas rapido o lento X==+XX Y==+YY POKE(53279,5) OD RETURN