Hola todo el mundo,
Soy nuevo por aquí y acabo de aterrizar en GLBasic, mis conocimientos sobre programación son casi nulos, haciendo unas pruebas con algunos códigos de ejemplo me he topado con este error
"DesktopClock.gbas"(38) error : variable is not explicitly defined : fup
Alguien sabe de que va el error ?, que es lo que provoca el error?.
El código en cuestión es le siguiente :
Gracias a todos de antemano, y un saludo.
Soy nuevo por aquí y acabo de aterrizar en GLBasic, mis conocimientos sobre programación son casi nulos, haciendo unas pruebas con algunos códigos de ejemplo me he topado con este error
"DesktopClock.gbas"(38) error : variable is not explicitly defined : fup
Alguien sabe de que va el error ?, que es lo que provoca el error?.
El código en cuestión es le siguiente :
Code (glbasic) Select
// --------------------------------- //
// Project: DesktopClock
// Start: Thursday, August 14, 2008
// IDE Version: 5.341
// Created by Hemlos@glbasic.com
// do a compile: 800x 600 fullscreen mode...looks cool
LOCAL sx,sy,h,w
GETSCREENSIZE sx,sy
GETFONTSIZE w,h
LOCAL cx=sx/2
LOCAL cy=sy/2
AUTOPAUSE FALSE
ALPHAMODE -1
LOADSPRITE "1.png",0
LOADSPRITE "1.png",1
WHILE TRUE
SYSTEMPOINTER FALSE
drawwater()
//jitter effect: turned off..gave me a headache lol
//dosfx=dosfx+1
//IF dosfx>3 THEN dosfx=0
//IF dosfx=10
// velx=RND(4)-2
// vely=RND(4)-2
// cx2=cx
// cx=cx2+velx
// cy2=cy
// cy=cy2+vely
//ENDIF
IF cy>400 THEN cy=400
IF cx>600 THEN cx=600
IF cx<200 THEN cx=200
IF cy<200 THEN cy=200
IF fup=0; fx1=fx1-1; IF fx1<1; fup=1;ENDIF; ENDIF
IF fup=1; fx1=fx1+1; IF fx1>250; fup=0;ENDIF;ENDIF
sxf(RGB(1,1,1),RGB(-fx1,1,1),cx,cy,170,66)
DRAWRING(RGB(20,20,fx1),RGB(-fx1,20,20),cx,cy,245,195)
DRAWRING(RGB(-fx1,20,20),RGB(20,20,fx1),cx,cy,195,170)
DRAWCIRCLE(RGB(1,1,1),cx,cy,66)
DRAWCIRCLE(RGB(fx1,1,1),cx,cy,200)
DRAWCIRCLE(RGB(1,1,fx1),cx,cy,240)
IF KeyBoardIO()>-1 THEN END
//seconds hand
STARTPOLY 0
//DRAWLINE cx,cy,cx+200*COS(secs*6-90),cy+200*SIN(secs*6-90),RGB(RND(200)+20,RND(200)+20,RND(200)+20) //secs
POLYVECTOR cx+200*COS(secs*6-90),cy+200*SIN(secs*6-90),cx+200*COS(secs*6-90),cy+200*SIN(secs*6-90),RGB(255,255,fx1)
POLYVECTOR cx+10*COS(secs*6-180),cy+10*SIN(secs*6-180),cx+10*COS(secs*6-180),cy+10*SIN(secs*6-180),RGB(1,1,1)
POLYVECTOR cx+10*COS(secs*6),cy+10*SIN(secs*6),cx+10*COS(secs*6),cy+10*SIN(secs*6),RGB(1,1,1)
ENDPOLY
//minutes hand
STARTPOLY 0
//DRAWLINE cx,cy,cx+166*COS(mins*6-90),cy+166*SIN(mins*6-90),RGB(RND(200)+20,0,0)//mins
POLYVECTOR cx+150*COS(mins*6-90),cy+150*SIN(mins*6-90),cx+200*COS(mins*6-90),cy+200*SIN(mins*6-90),RGB(255,255,fx1)
POLYVECTOR cx+10*COS(mins*6-180),cy+10*SIN(mins*6-180),cx+10*COS(mins*6-180),cy+10*SIN(mins*6-180),RGB(1,1,1)
POLYVECTOR cx+10*COS(mins*6),cy+10*SIN(mins*6),cx+10*COS(mins*6),cy+10*SIN(mins*6),RGB(1,1,1)
ENDPOLY
// hours hand
STARTPOLY 0
//DRAWLINE cx,cy,cx+122*COS(hrs*30-90),cy+122*SIN(hrs*30-90),RGB(0,0,RND(200)+20) //hours
POLYVECTOR cx+100*COS(hrs*30-90),cy+100*SIN(hrs*30-90),cx+200*COS(hrs*30-90),cy+200*SIN(hrs*30-90),RGB(255,255,fx1)
POLYVECTOR cx+10*COS(hrs*30-180),cy+10*SIN(hrs*30-180),cx+10*COS(hrs*30-180),cy+10*SIN(hrs*30-180),RGB(1,1,1)
POLYVECTOR cx+10*COS(hrs*30),cy+10*SIN(hrs*30),cx+10*COS(hrs*30),cy+10*SIN(hrs*30),RGB(1,1,1)
ENDPOLY
DRAWDISC(RGB(1,1,1),RGB(255,255,fx1),cx,cy,22)
DRAWCIRCLE(RGB(1,1,1),cx,cy,22)
FOR i= 1 TO 12 //draw little lines and numbers
DRAWLINE cx+200*COS(i*30),cy+200*SIN(i*30),cx+210*COS(i*30),cy+210*SIN(i*30),RGB(1,fx1,1)
PRINT i,cx+225*COS(i*30-90)-8,cy+225*SIN(i*30-90)-h/2-2
NEXT
secs1=convert(ASC(MID$(PLATFORMINFO$("TIME"),18,1)))
secs2=convert(ASC(MID$(PLATFORMINFO$("TIME"),17,1)))
mins1=convert(ASC(MID$(PLATFORMINFO$("TIME"),15,1)))
mins2=convert(ASC(MID$(PLATFORMINFO$("TIME"),14,1)))
hrs1= convert(ASC(MID$(PLATFORMINFO$("TIME"),12,1)))
hrs2= convert(ASC(MID$(PLATFORMINFO$("TIME"),11,1)))
secs=secs2*10
secs=secs+secs1
mins=mins2*10
mins=mins+mins1
hrs=hrs2*10
hrs=hrs+hrs1
IF hrs=0 THEN hrs=12
IF hrs>12;
hrs=hrs-12; pm$="pm"
ELSE
pm$="am"
ENDIF
PRINT MID$(PLATFORMINFO$("TIME"),0,10),2,2+fx1
IF mins<10
PRINT hrs+":0"+mins+" "+pm$,20,25+fx1
ELSE
PRINT hrs+":"+mins+" "+pm$,20,25+fx1
ENDIF
SHOWSCREEN
WEND
FUNCTION DRAWRING: Col1,Col2,CircleX,CircleY,OutsideRadius,InsideRadius
FOR Cir=0 TO 359 STEP 10
STARTPOLY 0
CirX1=CircleX+OutsideRadius*COS(Cir)
CirY1=CircleY+OutsideRadius*SIN(Cir)
CirX2=CircleX+OutsideRadius*COS(Cir-10)
CirY2=CircleY+OutsideRadius*SIN(Cir-10)
CirX3=CircleX+InsideRadius*COS(Cir-10)
CirY3=CircleY+InsideRadius*SIN(Cir-10)
CirX4=CircleX+InsideRadius*COS(Cir)
CirY4=CircleY+InsideRadius*SIN(Cir)
POLYVECTOR CirX1,CirY1,CirX1,CirY1,Col2
POLYVECTOR CirX2,CirY2,CirX2,CirY2,Col2
POLYVECTOR CirX3,CirY3,CirX3,CirY3,Col1
POLYVECTOR CirX4,CirY4,CirX4,CirY4,Col1
ENDPOLY
NEXT
ENDFUNCTION
FUNCTION sxf: Col1,Col2,CircleX,CircleY,OutsideRadius,InsideRadius
//strange effects
STATIC sf
FOR Cir=0 TO 359 STEP 20
STARTPOLY 0
sf=sf+1
Cir=Cir+sf
CirX1=CircleX+OutsideRadius*COS(Cir)
CirY1=CircleY+OutsideRadius*SIN(Cir)
CirX2=CircleX+OutsideRadius*COS(Cir-10)
CirY2=CircleY+OutsideRadius*SIN(Cir-10)
CirX3=CircleX+InsideRadius*COS(Cir-10)
CirY3=CircleY+InsideRadius*SIN(Cir-10)
CirX4=CircleX+InsideRadius*COS(Cir)
CirY4=CircleY+InsideRadius*SIN(Cir)
POLYVECTOR CirX1,CirY1,CirX1,CirY1,Col2
POLYVECTOR CirX2,CirY2,CirX2,CirY2,Col2
POLYVECTOR CirX3,CirY3,CirX3,CirY3,Col1
POLYVECTOR CirX4,CirY4,CirX4,CirY4,Col1
ENDPOLY
NEXT
FOR Cir=359 TO 0 STEP 20
STARTPOLY 0
sf=sf-1
Cir=Cir+sf+90
CirX1=CircleX+OutsideRadius*COS(Cir)
CirY1=CircleY+OutsideRadius*SIN(Cir)
CirX2=CircleX+OutsideRadius*COS(Cir-10)
CirY2=CircleY+OutsideRadius*SIN(Cir-10)
CirX3=CircleX+InsideRadius*COS(Cir-10)
CirY3=CircleY+InsideRadius*SIN(Cir-10)
CirX4=CircleX+InsideRadius*COS(Cir)
CirY4=CircleY+InsideRadius*SIN(Cir)
POLYVECTOR CirX1,CirY1,CirX1,CirY1,Col2
POLYVECTOR CirX2,CirY2,CirX2,CirY2,Col2
POLYVECTOR CirX3,CirY3,CirX3,CirY3,Col1
POLYVECTOR CirX4,CirY4,CirX4,CirY4,Col1
ENDPOLY
NEXT
IF sf>360 THEN sf=0
ENDFUNCTION
FUNCTION DRAWDISC: CircleColor1,CircleColor2,CircleX,CircleY,CircleRadius
FOR Cir=0 TO 359 STEP 10
STARTPOLY 0
CirXS=CircleX+CircleRadius*COS(Cir)
CirYS=CircleY+CircleRadius*SIN(Cir)
CirXE=CircleX+CircleRadius*COS(Cir-10)
CirYE=CircleY+CircleRadius*SIN(Cir-10)
CirXO=CircleX
CirYO=CircleY
POLYVECTOR CirXS,CirYS,CirXS,CirYS,CircleColor1
POLYVECTOR CirXE,CirYE,CirXE,CirYE,CircleColor1
POLYVECTOR CirXO,CirYO,CirXO,CirYO,CircleColor2
ENDPOLY
NEXT
ENDFUNCTION
FUNCTION DRAWCIRCLE: CircleColor,CircleX,CircleY,CircleRadius
//draws a 36 point circle
LOCAL Cir,CirXS,CirYS,CirXE,CirYE
FOR Cir=0 TO 359 STEP 10
CirXS=CircleX+CircleRadius*COS(Cir)
CirYS=CircleY+CircleRadius*SIN(Cir)
CirXE=CircleX+CircleRadius*COS(Cir-10)
CirYE=CircleY+CircleRadius*SIN(Cir-10)
DRAWLINE CirXS,CirYS,CirXE,CirYE,CircleColor
NEXT
ENDFUNCTION
// ------------------------------------------------------------- //
// --- convert ascii to numerals ---
// ------------------------------------------------------------- //
FUNCTION convert: num
IF num=48 THEN RETURN 0
IF num=49 THEN RETURN 1
IF num=50 THEN RETURN 2
IF num=51 THEN RETURN 3
IF num=52 THEN RETURN 4
IF num=53 THEN RETURN 5
IF num=54 THEN RETURN 6
IF num=55 THEN RETURN 7
IF num=56 THEN RETURN 8
IF num=57 THEN RETURN 9
RETURN -1
ENDFUNCTION // CHECKASC
// ------------------------------------------------------------- //
// --- KeyBoardIO --- detect any key press...
// returns instance of key pressed..one time...great for buttons
// waits till button is released...then returns that keycode.
// ------------------------------------------------------------- //
FUNCTION KeyBoardIO:
LOCAL i
STATIC INIT_KEYBOARD,K,SENDKWAIT,SKB
IF INIT_KEYBOARD=FALSE
INIT_KEYBOARD=TRUE
ENDIF
K=-1
FOR i=0 TO 299
IF KEY(i) THEN K=i
NEXT
IF (K=-1) AND (SENDKWAIT=TRUE); SENDKWAIT=FALSE; RETURN SKB; ENDIF
IF K>-1; SENDKWAIT=TRUE; SKB=K; K=-1; ENDIF
RETURN K
ENDFUNCTION // KEYBOARDXX
FUNCTION drawwater:
STATIC z1,z2
FOR y = 0 TO 600 STEP 60
FOR x= 0 TO 800 STEP 80
y1=y-3
STARTPOLY 1
POLYVECTOR x+RND(3)-3,y1+RND(3),x+RND(3)-3,y1+RND(3),RGB(RND(99),x/9+y/9,x/9+y/9)
POLYVECTOR x+RND(3)-3,y1+60+RND(3)+3,x+RND(3)-3,y1+60+RND(3)+3,RGB(RND(99),x/9+y/9,x/7+y/9)
POLYVECTOR x+80+RND(3)+3,y1+60+RND(3)+3,x+80+RND(3)+3,y1+60+RND(3)+3,RGB(RND(99),x/9+y/9,x/9+y/7)
POLYVECTOR x+80+RND(3)+3,y1+RND(3)-3,x+80+RND(3)+3,y1+RND(3)-3,RGB(RND(99),x/9+y/9,x/9+y/9)
ENDPOLY
NEXT
NEXT
ENDFUNCTION
Gracias a todos de antemano, y un saludo.