Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Sintax error

#1
Hola mentalthink,

Gracias por tu respuesta ( Rapidísima  :) ), he desactivado la casilla que comentas, y ahora si funciona el código en cuestión ( que por cierto, menudo curro que se pego el tal " Hemlos " en este código ).
Es muy de agradecer este tipo de ayuda, ya me estaba volviendo un poco tarumba, no sabia ya que hacer, en tiempos pasados con el MSX basic, Amiga basic etc, etc, no había esos problemas, al menos con los editores de Basic estándares.
Y si, tienes razón en lo de activar la casilla en el futuro y declarar todas las variables convenientemente, así se evitaran los posibles errores.

Mil gracias, SalU2.

Lisardo R.
#2
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 :
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.