
Veamos un pequeño resumen de lo que tenemos en el lenguaje:
1 General:
1 General:
- Los comandos se escriben en mayúsculas. En realidad no hay que preocuparse de esto porque el editor lo hace automáticamente, salvo que no reconozca la orden.
- Las instrucciones se separan con punto y coma (;) o salto de linea.
- Los comentarios empiezan por // (el conocido REM, es curioso que no reconozca dicha instrucción).
- GLBasic usa doble buffer para la pantalla. Se dibuja en una zona de la memoria y no se vuelca a pantalla hasta que se usa la orden SHOWSCREEN. Si no ves nada en pantalla busca esta orden en el programa.
- Hay tres tipos de variables (el uso de LET es opcional):
- Números: Por defecto se manejan los números en coma flotante.
- Enteros: Se le añada % al nombre de la variable al declararla.
- Cadenas: Se le añade $ al nombre de la variable al declararla. Al asignarle un valor ,el texto va entrecomillado.
- También podemos trabajar con matrices. Solo pueden tener cuatro dimensiones como máximo.
- Etiquetas de salto: Terminan en dos puntos (:). Útiles en conjunción con la instrucción GOTO, aunque desaconsejable el uso de esta última en aras de un buen estilo.
- Subrutinas: Se definen con la instrucción del menú "Project/New SUB". Se llaman con GOSUB en cualquier parte del programa. El código se la subrutina se ubica al final del programa principal.
- Bucles FOR/NEXT: Pueden ser descendentes.
- Bucles WHILE/WEND: Se cumple hasta que la condición (evaluada al principio) sea falsa.
- Bucles REPEAT/UNTIL: A diferencia del anterior la condición se evalual al final del bucle.
- BREAK/CONTINUE: Usados con condicionales interrumpen o saltan una iteración del bucle.
- SELECT/CASE: Permiten múltiples selecciones.
- IF: el condicional de toda la vida.
- KEYWAIT/MOUSEWAIT: El programa queda a la espera de pulsar una tecla (o botón del ratón).
Teclado:
- KEY: Devuelve el código ASCII de la tecla pulsada.
- INKEY$:Devuelve la tecla que ha pulsado el usuario.
- INPUT: Lee un linea de texto hasta que se pulsa enter.
- MOUSESTATE: Devuelve la localización del ratón y el estado de los botones.
- MOUSEAXIS:Devuelve información sobre alguno de los parámetros del ratón.
- SETMOUSE: Fija las coordenadas del ratón. Útil para limitarle el movimiento.
- JOYSTATE: Devuelve la posición del joystick y de los dos botones.
- GETJOY...: Solo para usuarios registrados. Permite acceder hasta a diez joysticks con treinta y dos botones cada uno.
Sonido (solo está soportado wav-PCM):
- LOADSOUND: Carga un sonido asignándole un identificador que servirá para acceder al sonido durante el resto del programa.
- PLAYSOUND: Toca un sonido.
- STOPSOUND: Para un determinado sonido.
- SOUNDPLAYING: Determina si un determinado sonido está reproduciéndose o ha acabado.
- HUSH: Para todos los sonidos.
- PLAYMUSIC: A diferencia del sonido, no hay que cargarlo previamente, basta indicarle la ruta del fichero.
- ISMUSICPLAYING: Determina si la música se está reproduciendo o no.
- MUSICVOLUME: Fija el volumen.
- PAUSEMUSIC: Pausa la música.
- STOPMUSIC: Para la música.
Algunas instrucciones generales para la pantalla:
- GETSCREENSIZE: Obtenemos la resolución de la pantalla. Recordemos que la fijamos al iniciar el proyecto.
- SETSCREEN: Cambia el tamaño de la pantalla.
- ISFULLSCREEN: Averigua si estamos a pantalla completa o no.
- LIMITFPS: Limita el máximo de frames por segundo.
GLBasic usa tres buffers:
- Primary Surface: Lo que vemos en pantalla.
- Back buffer: Donde dibujan todos los comandos gráficos. No es visible hasta que se transfiere su contenido con la orden SHOWSCREEN.
- Offscreen Surface: Donde se almacen el background o fondo.
Para trabajar en ésta última, tenemos tres órdenes:
- LOADBMP: Carga la imagen que le pasamos en la Offscreen Surface.
- BLACKSCREEN:Limpia el fondo dejándolo en negro.
- USEASBMP:Copia el Back Buffer al Offscreen Surface.
Empecemos con los comandos más simples.Recordemos que se trabaja en un buffer y que no veremos nada hasta usar SHOWSCREEN:
- SETPIXEL: Dibuja un punto.
- GETPIXEL: Obtenemos el color del punto de coordenadas especificadas.
- DRAWLINE: Dibuja una recta.
- DRAWRECT: Dibuja un rectángulo.
- PRINT: Imprime texto/números en la posición que especifiquemos.
- GETFONTSIZE: Devuelve el tamaño de un caracter en la fuente actual.
- LOADFONT: Carga un bmp para usarlo como fuente. Ojo a los requisitos del bmp.
- SETFONT: Asigna una fuente cargada con la orden anterior a las instrucciones PRINT e INPUT.
- LOADSPRITE: Carga un sprite desde un archivo y le asigna un identificador para posteriores usos.
- SAVESPRITE: Graba el sprite especificado.
- DRAWSPRITE: Dibuja el sprite en el Back Buffer.
- ROTOSPRITE: Similar a la anterior pero girando un ángulo.
- ZOOMSPRITE: Similar a DRAWSPRITE pero escalada (admite reflexiones)
- ROTOZOOMSPRITE: ¿Por qué no tener ambas instrucciones en una sola?
- STRETCHSPRITE: Similar a ZOOMSPRITE pero especificamos el tamaño final en píxeles en lugar del factor de escalado.
- LOADANIM: Carga una imagen partiéndola en trozos.
- DRAWANIM: Dibuja el trozo que le indiquemos de una animación.
- SETSPRITEANIM:Ajusta el trozo si quieres usar un sprite con DRAWANIM.
Se considera transparente el color R:255,G:0 B:128. Queda bastante más por ver, pero por ahora es suficiente para empezar a trabajar.
Enlaces:
Listado alfabético de instrucciones.
Listado de instrucciones por categorías.