# Ayuda de Div Games Studio/Nuevos comandos y variables

Lenguaje de programación más extenso. El lenguaje de programación ha sido agrandado, incluyendo muchas características nuevas y funciones internas, los más importantes se describen a continuación.
* Las opciones de compilación tienen una nueva característica en esta versión, que permiten adaptar el proceso de compilación de cada proyecto (Ver Opciones de compilación).
* En adición al tipo dato de la primera versión (conocida ahora como INT), ahora existe tipos de dato STRING (cadenas de texto), WORD (todos los valores numéricos positivos de 16 bits), BYTE (todos los valores numéricos positivos de 8 bits) y POINTER (punteros, de todos esos tipos de dato).
* Las tablas y estructuras de 2 y 3 dimensiones (tambien de cualquier tipo) pueden ser definidas (ver la Declaración de una tabla y las estructuras pueden ser inicializadas globalmente (ver Declaración de una estructura).
* El nuevo Bloque de Función funcionan de una forma similar a las funciones de otros lenguajes de programación, se ejecutan secuencialmente (y no paralelamente como lo hacen los procesos). no retornarán nada hasta que hayan finalizado.
* Diferentes aspectos del depurador de programa han sido mejorados, con nuevas funciones y soporte para nuevos tipos de dato, También son nuevos los perfiles de tiempo, con los que puedes acceder desde el depurador usando la tecla F11, aquí podrás observar el tiempo que toma la ejecución y dibujado de cada proceso.
* El sistema de control de errores para los programas han sido mejorados, creando un ejecutable mejor y más estable, tambien ahora existe ka posibilidad de ignorar ciertos errores de ejecución para permitir que el programa continue ejecutándose (ver la función ignore_error).
* Han sido añadidas nuevas funciones de manejo de archivos, que te permiten tener mucha más flexibilidad con el manejo de archivos en un programa; mira por ejemplo fopen, fseek, get_dirinfo, chdir, remove o disk_free.
* Además del soporte para la música de CD-Audio y efectos digitales, ahora existen diferentes funciones para la reproducción e modulos de música MOD, S3M y XM (ver load_song, song o set_song_pos).
* Generador de código optimizado. El código generado por el programa es mejor y más rápido (hasta un 60%) que las versiones anteriores. además los programas creados son mucho más pequeños.
* Funciones para jugar juegos en internet u otras redes. Con DIV Games Studio 2, es posible crear juegos para jugar por cable, modem o red local IPX. Esta funcionalidad es muy sumple de controlar con las funciones net_join_game y net_get_games.
* También es nueva la integración en el lenguaje la habilidad de manipular cadenas de texto, con el tipo de dato STRING, muchas funciones nuevas (como por ejemplo strcat, strchr, upper o strdel) se han añadido junto con la sintaxis adaptada para trabajar con expresiones de cadena directamente en el lenguaje.
* Soporte de memoria dinámica. es posible preguntar por la memoria y liberarla dinámicamente mientras el programa está en ejecución, gracias a las funciones malloc y free (complementada con el nuevo tipo de dato POINTER). además la función memory_free permite determinar la memoria libre disponible en el sistema en un determinado punto del programa.
* Ahora puedes ordenar y desordenar datos con la función qsort que te permite ordenar y desordenar estructuras de datos, tomando cualquier campo como su índice.
* Otra nueva característica es la habilidad de buscar un camino. esto se logra con diferentes funciones (ver path_find el cual permite encontrar la mejor y más corta ruta disponible entre dos puntos, evitando los obstáculos.
* Compresión de data. Todo es más compacto; los ejecutables y la data instalada (puede ser creado como instalaciones compactas y protejidas). también se incluyeron funciones de compresión en el lenguaje (ver compress_file).
* Nuevo modo 8. Un nuevo modo con hasta 10 regiones de pantalla, que te permite visualizar mapas en sectores tridimensionales. Estos entornos tridimensionales también incluyen un editor integrado y muchas funciones específicas (ver por ejemplo start_mode8, set_sector_height o set_fog).
Y mucho más. las novedades en el lenguaje no se detienen aquí, hay muchas otras mejoras y funciones (además de los errores en la versión anterior que fueron corregidos). Esbozado a continuación se describen que hay de nuevo en el lenguaje de programación DIV.
* Una nueva función, llamada force_pal, permite a todos los gráficos cargados en un programa adaptarse automáticamente a la paleta en tiempo de ejecución.
* también existen funciones para encriptado de data, tales como encode, encode_file y decode_file.
* La declaración de librerías se encuentra ahora al inicio del programa, justo después de la sentencia PROGRAM (ver IMPORT).
* Ahora es posible crear programas con muchos más modos de video, dado que los modos de video de VESA ya son detectados (ver video_modes).
* En esta nueva versión las asignaciones dentro de una condición están prohibidas, para simplificar la programación para los usuarios menos avanzados. sin embargo esto puede ser cambiado (ver _extended_conditions y _simple_conditions).
* Ahora es posible definir el número máximo de procesos que pueden estar activos en el programa durante la ejecución (ver _max_process).
* Ahora es posible definir literales sobre muchas lineas, para hacerlo el texto solo debe estar dividido entre distintos literales y puestos sucesivamente (ver la Literales de múltiples líneas).
* El sistema de sonido es completamente nuevo, y ahora es posible reproducir archivos OGG y WAV de mejor calidad en el programa (ver load_sound y los nuevos campos de la estructura setup). Tambien hay nuevas funciones como change_channel o is_playing_sound.
* Ahora también está permitido el uso de cuadros en formato PCX en el programa (ver load_pcx) y también localizar colores (find_color).
* Han sido añadidas funciones matemáticas trigonométricas como sin, cos, tan o asin.
* También ha sido añadida una herramienta de dibujado de primitivas para crear distintos graficos en la pantalla, tales como lineas, rectángulos y cajas, circulos, etc. (ver draw).
* Otras funciones que incrementan las posibilidades existentes han sido añadidas, como screen_copy, write_in_map, calculate, load_screen, xadvance, new_map, etc.
* Ahora puedes contar los cuadros por segundo (ver fps), obtener los parámetros del programa (ver argv, retrasar el refresco vertical (ver vsync, tener un mejor control del raton en el programa (ver mouse.cursor y mouse.speed), etc.
Y por supuesto, todas las funciones, data y posibilidades que estaban disponibles en la primera versión de DIV Games Studio, ¡todavía quedan! :)

## Ver También

* Nuevos aspectos del entorno