GLBasic es un lenguaje de programación BASIC comercial que se puede compilar en varias plataformas, entre ellas Windows , Linux , Mac OS X y algunos dispositivos portátiles . El lenguaje está diseñado para ser simple e intuitivo.
Descripción general
GLBasic comenzó como un lenguaje interpretado con comandos 2D (GL significa lenguaje gráfico). Ahora utiliza el compilador GCC para muchas plataformas diferentes para lograr resultados de código nativos y rápidos . El precompilador GLBasic "GPC" convierte el lenguaje BASIC simple en código C++ y lo compila más tarde. De este modo, el usuario puede ampliar GLBasic utilizando el comando INLINE para mezclar código C /C++ directamente con el código fuente GLBasic. Debido a esto, GLBasic puede acceder fácilmente a bibliotecas dinámicas de terceros en todas las plataformas. El SDK GLBasic viene con un IDE , un depurador y un motor de gráficos integrado en OpenGL (o OpenGL ES ) para las plataformas Windows , Linux , Mac OS X , iOS y WebOS . Para dispositivos portátiles ( Windows Mobile , GP2X y GP2X Wiz ), GLBasic utiliza sus propias rutinas cercanas al hardware para gráficos rápidos.
Para compilar para el iPhone o iPad , necesitará un iMac (en el que compilar el código generado, para cumplir con los requisitos de Apple) y la última versión de Xcode , que se puede descargar gratuitamente del sitio web de Apple.
Para poder ejecutar el programa en un iPhone o iPad (los programas GLBasic no funcionarán en el emulador), debes ser miembro de iPhone Apple Developer Connection .
Desde el lanzamiento de la versión beta 8.054, también es posible compilar para la máquina Open Pandora . Sin embargo, debido a la falta de herramientas de programación de Windows, la mitad del proceso de compilación se realiza en Windows y la otra mitad en la máquina real. Desde la versión 10, el IDE crea paquetes directamente en Windows para Pandora.
La versión 8.230 y posteriores pueden compilarse para dispositivos con sistema operativo web como Palm Pre sin necesidad de hardware adicional ni de ser miembro de un programa para desarrolladores. La compatibilidad con HP TouchPad se agregó en septiembre de 2011 mediante una actualización web.
La versión 10.057 agregó soporte para crear paquetes de aplicaciones que se ejecutan en dispositivos Android .
GLBasic viene con numerosos ejemplos.
Publicación en línea
Las aplicaciones creadas con GLBasic se pueden cargar en la App Store de Apple , Google Play y el catálogo de aplicaciones de HP ; todas ellas requieren una cuenta de desarrollador. Los costos para el desarrollador y el nivel de revisión previa a la publicación dependen del editor utilizado.
Para Apple iOS, el Programa para desarrolladores de iOS cuesta 99 dólares al año. Todas las aplicaciones publicadas en la tienda de aplicaciones deben pasar por un proceso de revisión y aprobación de dos semanas antes de su publicación.
Para Android, se aplica una tarifa única de 25 USD. Las aplicaciones publicadas a través de Google Play Store no están sujetas a un proceso de aprobación y están disponibles para el público de inmediato.
Para publicar a través del Catálogo de aplicaciones de HP se necesita una cuenta gratuita. Las aplicaciones que se ponen a la venta a través del Catálogo de aplicaciones de HP pasan por un proceso de revisión de cinco días antes de su publicación.
También está disponible para GLBasic un contenedor para el SDK Intel AppUp Center.
Características
GLBasic tiene las siguientes características:
General
- Los programas están escritos en BASIC.
- Las cadenas y los números se convierten automáticamente entre tipos.
- Las matrices pueden ser de tamaño fijo o dinámicas.
- El sonido, los gráficos y los datos se pueden comprimir en un solo archivo.
- Los usuarios pueden definir sus propios tipos. Se permiten tipos dentro de tipos y matrices dinámicas .
- El código C se puede incluir colocando el código apropiado entre un comando inicial y uno final, o se puede incluir durante la compilación. Además, en Windows, se pueden llamar funciones dentro de las DLL.
- Algunas funciones solo están disponibles en formato PC.
- Los programas para iOS pueden utilizar OpenFeint.
Funciones 3D
- El motor 3D es fácil de usar y mantiene un procesamiento rápido de los objetos.
- Los objetos pueden ser animados
- Funciona con la mayoría de los formatos 3D comunes.
- Los objetos pueden tener sombras
- Un sistema de entidades está disponible como un paquete de biblioteca de código abierto gratuito
Funciones 2D
- Los sprites se pueden rotar y escalar y tienen en cuenta los valores de mezcla y teñido.
- Se pueden dibujar líneas, rectángulos rellenos y otras formas.
Características de la red
- Están disponibles sockets TCP/IP y UDP/IP, así como una biblioteca de nivel superior construida sobre los sockets IP.
Compilador
- El compilador es multiplataforma. Sin embargo, según los requisitos legales de Apple, es necesario tener una Mac Intel para compilar el código generado para el iPhone.
IDE
- El editor es exclusivo para Windows, pero puede ejecutarse a una velocidad decente en la mayoría de las máquinas virtuales. Sin embargo, con Wine , solo se puede compilar para Windows. La compatibilidad con versiones Crossover y Mac se ofrece desde la versión 10.
- Se está trabajando en un editor de terceros para Mac.
Sistema GUI
GLBasic viene con el código fuente de DDgui, un sistema GUI fácil de usar, que permite que todas las plataformas compatibles tengan la misma apariencia en todas las plataformas.
Para Windows, Linux y Mac, GLBasic ha portado un contenedor Tcl/Tk que ofrece una apariencia de sistema operativo nativo.
Versiones
GLBasic ha pasado por las siguientes revisiones:
- Versión 1.2: la primera versión de GLBasic (también conocida como la secuela de DiNGS Game Basic) (2000)
- Versión 2.4: se introdujo la compatibilidad con PocketPC.
- Versión 3.0 - (Nombre en clave: Behemoth) se agregaron TIPOS
- Versión 4.0: se introdujo la capacidad de interactuar con las DLL de Windows y se introdujo la compilación para Xbox (si Linux está instalado en ella). También debería funcionar en Linux estándar, aunque no hay aceleración de hardware, por lo que los programas se ejecutan mucho más lento. (2007)
- Versión 5.0: se introdujo la compilación para Apple Mac como una aplicación universal
- Versión 6.0: se introdujeron números enteros en GLBasic por primera vez. Anteriormente, las variables podían ser de punto flotante o cadenas (diciembre de 2008)
- Versión 7.0: se introdujo la posibilidad de compilar para dispositivos Apple iPhone y iPod Touch. (Agosto de 2009)
- Versión 8.2: ahora gratuita para proyectos no comerciales, compatible con la plataforma Open Pandora y con iPhone/iPad (agosto de 2010)
- Versión 9.0: se introdujo la capacidad de compilar para Palm WebOS (Palm Pre, Palm Pixi). (Marzo de 2011)
- Versión 10.057: se introdujo la capacidad de compilar para Android
- Versión 10.109: se agregó soporte para paneles WebOS como el HP TouchPad
- Versión 11.0: se agregó compatibilidad con HTML5
- Versión 12: puerto HTML5 mejorado, biblioteca GUI nativa (enero de 2014)
- Versión 14* - Otras plataformas ahora instaladas como complementos, PRESCALER, depuración mejorada (agosto de 2015) *se omitió la versión 13
- Versión 14 - Actualización: introduce compatibilidad con IPv6 en comandos de red, libPNG actualizado (octubre de 2016)
- Versión 15 - "Unicorn", opciones de depuración mejoradas, agrega fuentes True Type (noviembre de 2017)
- Versión 16: disponible a través de Steam , compilador C++ renovado, compatibilidad con Windows x64 (marzo de 2019)
Código de muestra
Hola Mundo
// esto es un comentario // Imprimir "Hola mundo" en la posición de pantalla 0,0 (arriba, izquierda) IMPRIMIR "Hola mundo", 0,0 // intercambia el backbuffer y la pantalla visible, prepara el backbuffer para la siguiente representación PANTALLA DE MOSTRAR // esperar a que se presione una tecla ESPERA DE LLAVE
Alcance limitado orientado a objetos
Con la versión 8, GLBasic agregó comandos básicos orientados a objetos al comando TYPE. Esto permite que las estructuras accedan a sí mismas (usando el comando 'self') y tengan funciones dentro de los TYPE.
Prueba OOP simple
TIPO Tvec x;y;z FUNCIÓN null: yo.x = 0; yo.y=0; FUNCIÓN FINAL
FUNCIÓN añadir: v AS Tvec INC auto.x, vx INC auto.y, vy INC auto.z, vz FUNCIÓN FINAL TIPO FINAL
vec LOCAL AS Tvec, vec2 AS Tvec
vec.null() vec.x=50 vec2.x = 100 vec.add(vec2)
La versión 8 puede cifrar y descifrar cadenas utilizando Blowfish de 128 bits .
El futuro
Debido a que el autor tuvo problemas con los compiladores ARM64 iOS, varios otros problemas y tiempo insuficiente para actualizar el software, el código fuente (y la publicación en el foro al respecto) se puso a disposición de aquellos miembros del foro que tenían un recuento de publicaciones de al menos 100. La descarga pesa alrededor de 2,5 GB comprimida.
Véase también
- SdlBasic , un BASIC interpretado para GP2X
- Básico4GL
- Proyecto Fenix, un lenguaje interpretado que pretende ser más fácil de aprender que C++
- DarkBASIC Professional , un compilador BASIC exclusivo para Windows
Referencias
- Este artículo se basa en contenido tomado de la wiki GP2X, que está disponible bajo los términos de la GFDL.
Enlaces externos
- Sitio web oficial
- Foro oficial
- Juegos GP2X escritos para la competición GLBasic/gp2x.de 2008
- Guía de referencia de lenguaje externo
- Guía oficial externa de referencia lingüística (en inglés)
- La wiki de GLBasic
