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