Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Fenris78

166
Ultima fecha de actualizacion del hilo principal:  28 Julio 2009

Esto esta bastante parado. Preciso saber si los responsables del proyecto van a revitalizar el tema o no.

167
Autor: Fenris78

Version GM utilizada:  :GM6: Probablemente compatible con :GM7: (por verificar)

Descripcion: Hoy mientras trabajaba en Cell Fusion, me di cuenta de que me vendria bien algun tipo de Script para mejorar la seleccion automatica de enemigos a la hora de dispararles. No me bastaba con que se eligiera al mas cercano, me resultaba mas util elegir primero al enemigo mas cercano ubicado dentro de un rango de vision definido por un angulo y una distancia maximas. En el caso de que no existiera ningun objeto que cumpliera esas condiciones, entonces dar luz verde a elegir el objeto mas cercano aunque estuviera fuera del rango de vision.

Este script tambien puede ser util para hacer peque?as IAs. No he tenido tiempo de hacerlo, pero se me ocurrio que para el ejemplo podria haber puesto un par de nidos de ametralladoras disparando a una multitud de atacantes. Estos nidos solo dispararian a los enemigos que tuvieran dentro de su rango de tiro, priorizandolos segun la distancia a la que se encontrasen de su posicion. Eventualmente, cuando todo estuviera tranquilo, alguien podria atacar desde atras... si no tuvieran activado el 4 argumento, las posiciones serian tomadas, caso contrario, podrian "oir" al enemigo y darse la vuelta.

He de darle las gracias a Darth por darme la idea de por donde podria tirar para hacer el Script y a Killer por ayudarme a localizar y solucionar un bug importante en el script. El post original lo teneis aqui.

Codigo del Script:

/*----------------------------------------------------------------------------
Script de seleccion de objetivos cercanos a traves de visibilidad.

Esta funcion devuelve el id del enemigo mas cercano dentro del rango
de vision. Si esta demasiado lejos, da la opcion de escoger al mas
cercano, este o no dentro de la vista (argument4 puesto a true). Si
el argumento 4 no esta inicializado, el script retorna "false" cuando
no detecta objetos en el rango de vision.

// argument0 objeto a chequear
// argument1 objeto referencia
// argument2 distancia maxima antes de buscar objetivo fuera del encaramiento
// argument3 maxima apertura (por cada lado)
// argument4 si no ve nada, devuelve ids de objeto mas cercano fuera de vista.

Ejemplo de uso:  sc_cercacara(o_hostil,o_scalpel,400,120,true);
----------------------------------------------------------------------------*/

var nen, cen, den, iden, mien, ten;

nen=instance_number(argument0);

cen=ds_priority_create();

for(i=0; i<nen; i+=1)
{
   iden=instance_find(argument0,i);
   
   den=point_direction(argument1.x,argument1.y,iden.x,iden.y);
   
   if (argument1.direction < argument3) && (den > 360-argument3) den -= 360;
   else if (argument1.direction > 360-argument3) && (den<  argument3) den += 360;
   
   if ( den > argument1.direction - argument3 && den < argument1.direction + argument3 )
   {
       if(point_distance(iden.x,iden.y,argument1.x,argument1.y)<argument2)
       {
           ds_priority_add(cen,iden,point_distance(iden.x,iden.y,argument1.x,argument1.y) );
       }
   }
}

if  ( ! ds_priority_empty(cen) ) { mien=ds_priority_find_min(cen); }
else if(argument4=true) { mien=instance_nearest(argument1.x,argument1.y,argument0); }
else {ds_priority_destroy(cen); return false; }

ds_priority_destroy(cen);
return mien;



Como siempre, estais invitados a crear ejemplos, optimizar o ampliar el script. Eso si, si vais a poner algo, procurad que no implique perder la flexibilidad del script.
168
Desarrollo de Scripts / Re: random2
Agosto 13, 2009, 04:31:03 PM
La funcion random de GM devuelve numeros aleatorios, pero siempre con decimales, ahi la utilidad del script.
169
No, si los motivos me parecen estupendos, pero no es el momento de hablarlo. Implicaria reiniciar el debate, repasar las funciones que ya se han hecho y a?adir mas trabajo a los que se animen a colaborar, que ya sois pocos.

La cosa sigue como estaba. Cuando se termine con el trabajo pendiente, se habla lo que sea, A partir de ahora vamos a intentar que los proximos mensajes sean para a?adir funciones al listado.
170
Somnus, por favor, el tema de la forma ya esta hablado y cerrado. Todo lo que hablemos ahora es entorpecer su desarrollo. Lo unico que se puede hacer por la iniciativa es a?adir contenido con nuestras colaboraciones.
171
Somnus, por favor, lee los temas antes de participar en ellos:

Citar
Este es el listado completo de funciones y sentencias de :GM6: que hace algun tiempo redactamos entre toda la comunidad.

En esta ocasion, por peticion de la propia comunidad, se ha tomado la decision de ampliar este glosario a?adiendo nueva informacion, ejemplos y corrigiendo los gazapos que se nos escaparon en su dia.

Este listado es de funciones de GM 6.1. El resto esta explicado en el primer mensaje del hilo. No desviemos mas el tema.
172
Mucho ojo con eso, porque hay mas cambios de los que parece entre el GML de GM 6.1 y de GM 7.0. Son casi las mismas funciones, pero hay bastantes nuevas y varias de las antiguas que aunque conservan la sintaxis, cambian en el numero de argumentos. No vayamos a caer en extrapolar el listado a GM 7.0 sin revisarlo: aunque buena parte de las funciones sean iguales, este listado es de GM 6.1.
173
Lo de las funciones relacionadas se refiere solo a funciones con una relacion obvia y directa. por ejemplo,  podrian ser funciones relacionadas las que utilizas para obtener dia, hora y mes, pero no hay porque mencionar las de modificar fecha o cambiar su formato. De todas formas, ante la duda, simplemente no se pone nada y listo.
174
Código (Parte 5) [Seleccionar]
ds_set_precision(prec) Especifica la precisi?n usada en comparaciones.

ds_stack_create() Crea una nueva pila. La funci?n devuelve un n?mero entero con la id de la pila para usarla en las diferentes funciones. Puedes crear varias pilas.

ds_stack_destroy(id) Destruye la pila, liberando la memoria usada. No olvides usar esta funci?n cuando ya no necesites la pila.

ds_stack_clear(id) Limpia la pila, borrando todos los valores que contiene pero no la destruye.

ds_stack_size(id) Devuelve el n?mero de valores en la pila.

ds_stack_empty(id) Devuelve true si la pila est? vac?a. Es lo mismo que chequear si el n?mero de valores en la pila es cero.

ds_stack_push(id,val) Empuja el valor dentro de la pila.

ds_stack_pop(id) Devuelve el valor al final de la pila (esto es, el ?ltimo valor introducido) y lo elimina de la pila.

ds_stack_top(id) Devuelve el valor al principio de la pila (el primero que se introdujo) pero no lo elimina.

ds_queue_create()Crea una nueva cola. La funci?n devuelve un n?mero entero con la id de la cola para usarla en las diferentes funciones. Puedes crear varias colas.

ds_queue_destroy(id) Destruye la cola, liberando la memoria usada. No olvides usar esta funci?n cuando ya no necesites la cola.

ds_queue_clear(id)Limpia la cola, borrando todos los valores que contiene pero no la destruye.

ds_queue_size(id) Devuelve el n?mero de valores en la cola.

ds_queue_empty(id) Devuelve true si la cola est? vac?a. Es lo mismo que chequear si el n?mero de valores en la cola es cero.

ds_queue_enqueue(id,val) Introduce el valor en la cola.

ds_queue_dequeue(id) Devuelve el ?ltimo valor de la cola (el ?ltimo en introducirse) y lo elimina de la cola.

ds_queue_head(id) Devuelve el valor al principio de la cola, esto es, el primero que se introdujo, pero no lo elimina de la cola.

ds_queue_tail(id) Devuelve el ?ltimo valor de la cola pero no lo elimina.

ds_list_create()Crea una nueva lista. La funci?n devuelve un n?mero entero con la id de la lista para usarla en las diferentes funciones. Puedes crear varias listas.

ds_list_destroy(id) Destruye la lista, liberando la memoria usada. No olvides usar esta funci?n cuando ya no necesites la lista.

ds_list_clear(id) Limpia la lista, borrando todos los valores que contiene pero no la destruye.

ds_list_size(id) Devuelve el n?mero de valores en la lista.

ds_list_empty(id) Devuelve true si la lista est? vac?a. Es lo mismo que chequear si el n?mero de valores en la lista es cero.

ds_list_add(id,val) Inserta el valor al final de la lista.

ds_list_insert(id,pos,val) Inserta el valor en la posici?n pos. La primera posici?n es 0 y la ?ltima es igual al tama?o de la lista menos 1.

ds_list_replace(id,pos,val) Reemplaza el valor en la posici?n pos por val. ds_list_delete(id,pos) Elimina el valor en la posici?n pos.

ds_list_find_index(id,val) Devuelve la posici?n en la lista del valor val. Si no encuentra el valor en la lista devuelve -1.

ds_list_find_value(id,pos) Devuelve el valor en al posici?n pos.

ds_list_sort(id,ascend) Ordena los valores de la lista. Si ascend es true o 1 los ordena de forma ascendente, en caso contrario los ordena de manera descendente.

ds_map_create()Crea un nuevo mapa. La funci?n devuelve un n?mero entero con la id del mapa para usarla en las diferentes funciones. Puedes crear varios mapas.

ds_map_destroy(id) Destruye el mapa, liberando la memoria usada. No olvides usar esta funci?n cuando ya no necesites el mapa.

ds_map_clear(id)Limpia el mapa, borrando todos las parejas llave-valor que contiene pero no lo destruye.

ds_map_size(id) Devuelve el n?mero de parejas llave-valor en el mapa.

ds_map_empty(id) Devuelve true si el mapa est? vac?a. Es lo mismo que chequear si el n?mero de valores en el mapa es cero.

ds_map_add(id,key,val) A?ade la pareja llave (key)-valor (val) al mapa.

ds_map_replace(id,key,val) Reemplaza el valor correspondiente a la llave con un nuevo valor.

ds_map_delete(id,key) Elimina la pareja llave-valor especificada del mapa. Si hay varias parejas con la misma llave s?lo 1 es eliminada.

ds_map_exists(id,key) Devuelve true si la llave existe en el mapa.

ds_map_find_value(id,key) Devuelve el valor correspondiente a la llave.

ds_map_find_previous(id,key) Devuelve la mayor llave que sea menor que la indicada.

ds_map_find_next(id,key) Devuelve la menor llave que sea mayor que la indicada.

ds_map_find_first(id) Devuelve la menor llave del mapa.

ds_map_find_last(id) Devuelve la mayor llave del mapa.

ds_ priority _create()Crea una nueva cola. La funci?n devuelve un n?mero entero con la id de la cola para usarla en las diferentes funciones. Puedes crear varias colas.

ds_ priority _destroy(id) Destruye la cola, liberando la memoria usada. No olvides usar esta funci?n cuando ya no necesites la cola.

ds_ priority _clear(id)Limpia la cola, borrando todos los valores que contiene pero no la destruye.

ds_ priority _size(id) Devuelve el n?mero de valores en la cola.

ds_ priority _empty(id) Devuelve true si la cola est? vac?a. Es lo mismo que chequear si el n?mero de valores en la cola es cero.

ds_priority_add(id,val,prio) A?ade el valor con la prioridad especificada a la cola.

ds_priority_change_priority(id,val,prio) Cambia la prioridad del valor especificado al nuevo valor.

ds_priority_find_priority(id,val) Devuelve la prioridad del valor especificado.

ds_priority_delete_value(id,val) Elimina el valor (con su prioridad) de la cola de prioridad.

ds_priority_delete_min(id)Devuelve el valor con la menor prioridad y lo elimina de la cola.

ds_priority_find_min(id) Devuelve el valor con la menor prioridad pero no lo elimina de la cola.

ds_priority_delete_max(id) Devuelve el valor con la mayor prioridad y lo elimina de la cola.

ds_priority_find_max(id) Devuelve el valor con la mayor prioridad pero no lo elimina de la cola.

ds_grid_create(w,h) Crea una rejilla con la anchura especificada en w y la altura especificada en h. La funci?n devuelve la id de la rejilla que debe usarse en las dem?s funciones.

ds_grid_destroy(id) Destruye la rejilla, liberando la memoria usada. No olvides usar esta funci?n cuando ya no necesites la rejilla.

ds_grid_resize(id,w,h) Aumenta el tama?o de la rejilla a la nueva anchura y altura especificadas. Las celdas ya existentes mantienen su valor.

ds_grid_width(id) Devuelve la anchura de la rejilla.

ds_grid_height(id) Devuelve la altura de la rejilla.

ds_grid_clear(id,val) Hace que todos las celdas de la rejilla tomen el valor val (puede ser un n?mero o una cadena de texto).

ds_grid_set(id,x,y,val)Asigna a la celda x,y el valor val.

ds_grid_add(id,x,y,val) Suma el valor a la celda especificada. Para cadenas de texto, la cadena se concatena a la que ya existe en la celda.

ds_grid_multiply(id,x,y,val) Multiplica la celda por el valor. S?lo se puede usar con n?meros.

ds_grid_set_region(id,x1,y1,x2,y2,val) Todas las celdas de la regi?n especificada toman el valor especificado.

ds_grid_add_region(id,x1,y1,x2,y2,val)Suma el valor a la regi?n especificada. Para cadenas de texto, concatena la cadena de texto a la existente en cada celda.

ds_grid_multiply_region(id,x1,y1,x2,y2,val) Multiplica el valor por todas las celdas de la regi?n (s?lo para valores num?ricos).

ds_grid_set_disk(id,xm,ym,r,val) Da el valor especificado a toda las celdas dentro del c?rculo de centro xm,ym y radio r.

ds_grid_add_disk(id,xm,ym,r,val) Suma el valor a la regi?n especificada por el c?rculo. Para cadenas de texto, concatena la cadena de texto a la existente en cada celda.

ds_grid_multiply_disk(id,xm,ym,r,val) Multiplica el valor por todas las celdas de la regi?n (s?lo para valores num?ricos).

ds_grid_get(id,x,y) Devuelve el valor de la celda indicada.

ds_grid_get_sum(id,x1,y1,x2,y2) Devuelve la suma de los valores de las celdas de la regi?n especificada. S?lo funciona con valores num?ricos.

ds_grid_get_max(id,x1,y1,x2,y2) Devuelve el m?ximo valor de las celdas de la regi?n especificada. S?lo funciona con valores num?ricos.

ds_grid_get_min(id,x1,y1,x2,y2) Devuelve el m?nimo valor de las celdas de la regi?n especificada. S?lo funciona con valores num?ricos.

ds_grid_get_mean(id,x1,y1,x2,y2) Devuelve el valor medio de las celdas de la regi?n especificada. S?lo funciona con valores num?ricos.

ds_grid_get_disk_sum(id,xm,ym,r) Devuelve la suma de los valores de las celdas de la regi?n circular especificada. S?lo funciona con valores num?ricos..

ds_grid_get_disk_min(id,xm,ym,r) Devuelve el m?nimo valor de las celdas de la regi?n circular especificada. S?lo funciona con valores num?ricos.

ds_grid_get_disk_max(id,xm,ym,r) Devuelve el m?ximo valor de las celdas de la regi?n circular especificada. S?lo funciona con valores num?ricos.

ds_grid_get_disk_mean(id,xm,ym,r) Devuelve el valor medio de las celdas de la regi?n circular especificada. S?lo funciona con valores num?ricos.

ds_grid_value_exists(id,x1,y1,x2,y2,val) Devuelve true si el valor especificado existe en la regi?n.

ds_grid_value_x(id,x1,y1,x2,y2,val) Devuelve la coordenada x de la celda de la regi?n en la que aparece el valor especificado.

ds_grid_value_y(id,x1,y1,x2,y2,val) Devuelve la coordenada y de la celda de la regi?n en la que aparece el valor especificado.

ds_grid_value_disk_exists(id,xm,ym,r,val) Devuelve true si el valor especificado existe en la regi?n circular.

ds_grid_value_disk_x(id,xm,ym,r,val) Devuelve la coordenada x de la celda de la regi?n circular en la que aparece el valor especificado.

ds_grid_value_disk_y(id,xm,ym,r,val) Devuelve la coordenada y de la celda de la regi?n circular en la que aparece el valor especificado.

file_text_open_read(fname) Abre el archivo fname para lectura. La funci?n devuelve la id del archivo que debes utilizar en el resto de funciones. Puedes abrir hasta un m?ximo de 32 archivos simult?neamente. No
olvides cerrar los archivos una vez que no los necesites.file_text_open_write(fname) Abre el archivo fname para escritura, cre?ndolo si no existe. La funci?n devuelve la id del archivo que debes usar en las dem?s
funciones.

file_text_open_append(fname) Abre el archivo fname para agregar datos al final, cre?ndolo si no existe. La funci?n devuelve la id del archivo que debes usar en las dem?s funciones.

file_text_close(fileid) Cierra el archivo indicado por fileid (?No olvides llamarla!).

file_text_write_string(fileid,str) Escribe la cadena str al archivo indicado por fileid.

file_text_write_real(fileid,x) Escribe el valor real x en el archivo indicado por fileid.

file_text_writeln(fileid) Escribe un car?cter de nueva l?nea en el archivo.

file_text_read_string(fileid) Lee una cadena del archivo y devuelve esta cadena. Una cadena termina al final de la l?nea.

file_text_read_real(fileid) Lee un valor real del archivo y devuelve este valor.

file_text_readln(fileid) Salta el resto de la l?nea en el archivo e inicia al principio de la siguiente l?nea.

file_text_eof(fileid) Indica si hemos llegado al final del archivo.

file_exists(fname) Indica si el archivo con el nombre fname existe (true) o no (false).

file_delete(fname) Borra el archivo con el nombre fname.

file_rename(oldname,newname) Renombra el archivo con el nombre oldname a newname.

file_copy(fname,newname) Copia el archivo fname al nombre newname

directory_exists(dname) Indica si la carpeta dname existe.

directory_create(dname) Crea una carpeta con el nombre dname (incluyendo la ruta a esa carpeta) si no existe.

file_find_first(mask,attr) Devuelve el nombre del primer archivo que satisfaga las condiciones de la m?scara mask y los atributos attr. Si no existe tal archivo, devuelve una cadena vac?a. La m?scara puede contener
una ruta y comodines (*), por ejemplo ?C:\temp\*.doc?. Los atributos indican archivos adicionales que quieras ver. (Por lo que los archivos normales son siempre devueltos cuando satisfacen la m?scara).

fa_readonly archivos de s?lo lectura

fa_hidden archivos ocultos

fa_sysfile archivos de sistema

fa_volumeid archivos volume-id

fa_directory carpetas

fa_archive archivos archivados

file_find_next() Devuelve el nombre del siguiente archivo que satisface la m?scara y los atributos indicados previamente. Si no existe tal archivo, devuelve una cadena vac?a.

file_find_close() Debe ser llamada despu?s de manipular los archivos para liberar la memoria.

file_attributes(fname,attr) Indica si el archivo fname tiene todos los atributos dados por attr.

filename_name(fname) Devuelve el nombre del archivo fname, con la extensi?n pero sin la ruta.

filename_path(fname) Devuelve la ruta al archivo indicado, incluyendo la ?ltima barra de separaci?n.

filename_dir(fname) Devuelve el directorio del archivo, que normalmente suele ser igual que la ruta pero sin la ?ltima barra de separaci?n.

filename_drive(fname) Devuelve la informaci?n de la unidad del archivo.

filename_ext(fname) Devuelve la extensi?n del archivo, incluyendo el punto.

filename_change_ext(fname,newext) Devuelve el nombre del archivo con la extensi?n

sustituida por newext. Si indicas una cadena de texto vac?a para newext puedes eliminar la extensi?n del archivo.

file_bin_open(fname,mod) Abre el archivo con el nombre especificado. El par?metro mod indica qu? se puede hacer con el archivo: 0=leer, 1=escribir y 2= leer y escribir. La funci?n devuelve la id del archivo que debe
utilizarse en las dem?s funciones. Puedes abrir hasta un m?ximo de 32 archivos simult?neamente, pero no olvides cerrarlos cuando hayas terminado con ellos.

file_bin_rewrite(fileid) Limpia el archivo indicado por fileid, es decir, borra todo su contenido y se sit?a al principio del archivo para empezar a escribir.

file_bin_close(fileid) Cierra el archivo especificado. No olvides llamarla!

file_bin_size(fileid) Devuelve el tama?o en bytes del archivo indicado.

file_bin_position(fileid) Devuelve la posici?n actual en el archivo en bytes (0 es el principio del archivo).

file_bin_seek(fileid,pos) Mueve la posici?n en el archivo a la posici?n indicada por pos.

Para a?adir contenido al final de un archivo, usa el valor file_bin_size(fileid) para el par?metro pos.

file_bin_write_byte(fileid,byte) Escribe un byte de datos al archivo especificado.

file_bin_read_byte(fileid) Lee un byte de datos del archivo.

game_id* Identificador ?nico para el juego. Puedes usarlo si necesitas un nombre ?nico de archivo.

working_directory* Carpeta de trabajo del juego. (No incluye la diagonal invertida final).

temp_directory* Carpeta temporal creada para el juego. Puedes almacenar archivos temporales aqu?. Ser?n eliminados cuando el juego finalice. En ciertas situaciones podr?as dar al jugador la posibilidad de introducir argumentos mediante la l?nea de comandos al juego que est?n ejecutando (para por ejemplo activar trucos o modos especiales).

parameter_count() Devuelve el n?mero de par?metros de la l?nea de comandos (nota que el nombre del programa es uno de ellos).

parameter_string(n) Devuelve los par?metros n de la l?nea de comandos. El primer par?metro tiene ?ndice 0 y es el nombre del programa.

environment_get_variable(name) Devuelve el valor (una cadena de texto) de la variable de entorno con el nombre especificado.

registry_write_string(name,str) Crea una entrada en el registro con el nombre name y como valor la cadena str.

registry_write_real(name,x) Crea una entrada en el registro con el nombre name y el valor real x.

registry_read_string(name) Devuelve la cadena almacenada con el nombre name. (El nombre debe existir, de otra forma se devuelve una cadena vac?a).

registry_read_real(name) Devuelve el valor real almacenado en la entrada name. (El nombre debe existir, de otra forma se devuelve el n?mero 0).

registry_exists(name) Indica si la entrada name existe.

registry_write_string_ext(key,name,str) Crea una entrada en el registro dentro de la clave key con el nombre name y como valor la cadena str.

registry_write_real_ext(key,name,x) Crea una entrada en el registro dentro de la clave key con el nombre name y el valor real x.

registry_read_string_ext(key,name) Devuelve la cadena con el nombre name dentro de la clave key (el nombre debe existir, de otra forma se devuelve una cadena vac?a).

registry_read_real_ext(key,name) Devuelve el valor real con el nombre name en la clave key (el nombre debe existir, de otra forma se devuelve el n?mero 0).

registry_exists_ext(key,name) Indica si el nombre name existe dentro de la clave key.

registry_set_root(root) Configura la ra?z para las otras rutinas.

ini_open(name) Abre el archivo de INI con el nombre dado ?El archivo INI se debe almacenar en la misma carpeta que el juego!

ini_close()Cierra el archivo INI actualmente abierto.

ini_read_string(section,key,default) Lee el valor (una cadena de texto) de la llave indicada con key de la secci?n indicada como section. Cuando no existe la llave o la secci?n se devuelve el valor especificado por
default.

ini_read_real(section,key,default) Lee el valor real de la llave indicada con key de la secci?n indicada como section. Cuando no existe la llave o la secci?n se devuelve el valor especificado por default.

ini_write_string(section,key,value) Escribe el valor value (una cadena de texto) en la llave indicada con key en la secci?n indicada con section.

ini_write_real(section,key,value) Escribe el valor real value en la llave indicada con key en la secci?n indicada con section.

ini_key_exists(section,key) Devuelve si la llave indicada existe en la secci?n indicada.

ini_section_exists(section) Devuelve si existe la secci?n indicada.

ini_key_delete(section,key) Elimina la llave indicada de la secci?n indicada.

ini_section_delete(section) Elimina la secci?n indicada.

execute_program(prog,arg,wait) Ejecuta el programa prog con los argumentos arg. wait indica si se debe esperar a que termine la aplicaci?n.

execute_shell(prog,arg) Ejecuta el programa (o archivo) en el entorno.

secure_mode* Indica si el juego est? ejecut?ndose en modo seguro.


ef_explosion

ef_ring

ef_ellipse

ef_firework

ef_smoke

ef_smokeup

ef_star

ef_spark

ef_flare

ef_cloud

ef_rain

ef_snow

effect_create_below(kind,x,y,size,color) Crea un efecto del tipo indicado en kind en la posici?n especificada. size es el tama?o del efecto seg?n la convenci?n siguiente: 0 = peque?o, 1 = mediano, 2 = grande. color
indica el color del efecto. El efecto se crea por debajo de la instancia con una profundidad (depth) igual a 100000.

effect_clear() Detiene y elimina todos los efectos.

part_type_create() Crea un Nuevo tipo de particular. Devuelve el ?ndice del tipo. Este ?ndice debe usarse en todas las llamadas a las funciones siguientes para configurar las propiedades del tipo de part?cula, por lo
que es aconsejable que lo guardes en una variable global.

part_type_destroy(ind) Destruye el tipo de particular ind. Llama a esta funci?n cuando ya no se necesite el tipo de part?cula para ahorrar espacio.

part_type_exists(ind) Devuelve si el tipo indicado de particular existe.

part_type_clear(ind) Devuelve el tipo de particular ind a sus valores por defecto.

t_shape_pixel (pixel)

t_shape_disk (disco)

pt_shape_square (cuadrado)

pt_shape_line (l?nea)

pt_shape_star (estrella)

pt_shape_circle (c?rculo)

pt_shape_ring (anillo)

pt_shape_sphere (esfera)

pt_shape_flare (brillo)

pt_shape_spark (chispa)

pt_shape_explosion (explosi?n)

pt_shape_cloud (nube)

pt_shape_smoke (humo)

pt_shape_snow (nieve)

part_type_shape(ind,shape) Aplica la forma tipo shape a la part?cula ind.

part_type_sprite(ind,sprite,animate,stretch,random) Asigna el sprite para el tipo de particula ind.

part_type_size(ind,size_min,size_max,size_incr,size_wiggle) Establece los par?metros de tama?o para el tipo de part?cula.

part_type_orientation(ind,ang_min,ang_max,ang_incr,ang_wiggle,ang_relative) Aplica la orientaci?n al tipo de part?cula.

part_type_color1(ind,color1) Indica un s?lo color para la part?cula.

part_type_color2(ind,color1,color2) Especifica dos colores entre los que se interpolar?.

part_type_color3(ind,color1,color2,color3) Ahora los colores representan el color incial, medio y final.

part_type_color_mix(ind,color1,color2) El color ser? seleccionado de una mezcla aleatoria de estos dos colores y permanecer? inalterado durante la vida de la part?cula.

part_type_color_rgb(ind,rmin,rmax,gmin,gmax,bmin,bmax) Se puede usar para especificar que cada part?cula tendr? un color fijo pero escogido de un rango de colores que especificas en modo rgb.

part_type_color_hsv(ind,hmin,hmax,smin,smax,vmin,vmax) Igual que la anterior, pero esta vez el rango se especifica en modo hsv.Adem?s del color, tambi?n puedes especificar un valor de transparencia. As? puedes
conseguir que las part?culas desaparezcan poco a poco.

part_type_alpha1(ind,alpha1) Aplica un ?nico valor de transparencia (entre 0 y 1) al tipo de part?cula.

part_type_alpha2(ind,alpha1,alpha2) Igual que la anterior, pero esta vez la transparencia en cada momento se interpola entre las dos especificadas.

part_type_alpha3(ind,alpha1,alpha2,alpha3) Igual que a anterior, pero esta vez la transparencia en cada momento se interpola entre las tres especificadas.

part_type_blend(ind,additive) Indica si se debe utilizar additive blending (1) o normal blending (0) para el tipo de part?cula.

part_type_life(ind,life_min,life_max) Establece los l?mites del tiempo de vida para el tipo de part?cula (Ambos son 100 por defecto).

part_type_step(ind,step_number,step_type) Establece el n?mero y tipo de part?culas que deben ser generadas en cada step para el tipo indicado de particula. Si usas un n?mero negativo para step_number, por
ejemplo -5, se generar? una part?cula cada 5 steps.

part_type_death(ind,death_number,death_type) Establece el n?mero y tipo de part?culas que deben ser generadas cuando una particular del tipo indicado llega al final de su ciclo de vida.

part_type_speed(ind,speed_min,speed_max,speed_incr,speed_wiggle) Establece las propiedades de velocidad para el tipo de part?cula.

part_type_direction(ind,dir_min,dir_max,dir_incr,dir_wiggle) Establece las propiedades de direcci?n para el tipo de part?cula, en grados antihorarios (0-360). (Todos los valores son 0 por defecto).

part_type_gravity(ind,grav_amount,grav_dir) Establece las propiedades de gravedad para el tipo de part?cula. (Por defecto no hay valor de gravedad).

part_system_create() Crea un nuevo sistema de part?culas. Devuelve el ?ndice del sistema creado. Este ?ndice debe emplearse en las llamadas a las funciones siguientes para configurar las propiedades del sistema
de part?culas.

part_system_destroy(ind) Destruye el sistema de part?culas ind. Llama a esta funci?n si ya no har?s uso del sistema para ahorrar espacio.

part_system_exists(ind) Devuelve si el sistema de part?culas ind existe.

part_system_clear(ind) Devuelve el sistema ind a sus valores por defecto, removiendo todas las part?culas, emisores y atractores en ?l.

part_system_draw_order(ind,oldtonew) Establece el orden en el que el sistema dibuja las part?culas. Cuando oldtonew es true las part?culas m?s viejas son dibujadas primero y las nuevas se dibujan sobre ellas (valor
por defecto). De otra forma las part?culas m?s recientes son dibujadas primero. Esto puede resultar en varios efectos diferentes.

part_system_depth(ind,depth) Especifica la profundidad del sistema de part?culas.

part_system_position(ind,x,y) Especifica la posici?n en la que se dibuja el sistema de part?culas. Si quieres dibujar el sistema relativo a un objeto puedes usar sus coordenadas.

part_system_automatic_update(ind,automatic) Indica si el sistema debe actualizarSe autom?ticamente (1) o no (0).

part_system_automatic_draw(ind,automatic) Indica si el sistema debe dibujarse autom?ticamente (1) o no (0).

part_system_update(ind) Esta funci?n actualiza el sistema y permite a los emisores crear part?culas. Puedes llamar a esta funci?n cuando no uses actualizaci?n autom?tica, o para acelerar un poco el sistema al
inicio.

part_system_drawit(ind) Esta funci?n dibuja el sistema de part?culas si has desactivado la opci?n autom?tica. Debes llamar a esta funci?n desde el evento draw de alg?n objeto.

part_particles_create(ind,x,y,parttype,number) Esta funci?n crea number part?culas del tipo ind en la posici?n (x,y) dentro del sistema.

part_particles_create_color(ind,x,y,parttype,color,number) Esta funci?n crea number part?culas del tipo ind en la posici?n (x,y) dentro del sistema con el color indicado. Esto es ?til cuando el tipo de part?cula s?lo usa
un color o no define ninguno.

part_particles_clear(ind) Esta funci?n elimina todas las part?culas del sistema.

part_particles_count(ind) Esta funci?n devuelve el n?mero de part?culas en el sistema. shape indica la forma de la regi?n.

ps_shape_rectangle

ps_shape_ellipse

ps_shape_diamond

ps_shape_line

distribution indica la distribuci?n usada para generar las part?culas.

particle type indica el tipo de part?culas que ser?n generadas

number indica el n?mero de part?culas generadas en cada step.

part_emitter_create(ps) Crea un nuevo emisor en el sistema de part?culas ps. Devuelve el ?ndice del emisor.

part_emitter_destroy(ps,ind) Destruye el emisor ind en el sistema de part?culas ps. Llama a esta funci?n si no necesitas m?s del emisor para ahorrar espacio.

part_emitter_destroy_all(ps) Destruye todos los emisores del sistema de part?culas ps.

part_emitter_exists(ps,ind) Devuelve true si el emisor ind existe en el sistema ps.

part_emitter_clear(ps,ind) Devuelve el emisor ind a sus valores por defecto.

part_emitter_region(ps,ind,xmin,xmax,ymin,ymax,shape,distribution) Establece la regi?n y distribuci?n del emisor.

part_emitter_burst(ps,ind,parttype,number) Emite number part?culas del tipo partype en forma de estallido (una sola vez) desde el emisor ind.

part_emitter_stream(ps,ind,parttype,number) Desde este momento se crear?n number part?culas de tipo partype desde el emisor ind en cada step. x,y indican la posici?n del atractor. force indican la fuerza de
atracci?n del atractor. El c?mo act?e la fuerza sobre las part?culas depende de los siguientes par?metros. dist indica la m?xima distancia a la cual el atractor tiene efecto. Solo las part?culas con una distancia al
atractor menor que dist ser?n atra?das. kind indica el tipo de atractor.

ps_force_constant indica que la fuerza es constante independientemente de la distancia.

ps_force_linear indica una fuerza que aumenta linealmente. A la distancia m?xima la fuerza es 0 mientras que en la posici?n del atractor la fuerza tiene el valor force indicado.

ps_force_quadratic indica que la fuerza aumenta de manera cuadr?tica.

additive indica si la fuerza se suma a la velocidad y direcci?n en cada step (true) o si solo se aplica a la posici?n de la particular (false).

part_attractor_create(ps) Crea un nuevo atractor en el sistema de part?culas ps. Devuelve el ?ndice del atractor.

part_attractor_destroy(ps,ind) Destruye el atractor ind dentro del sistema de part?culas ps. Llama a esta funci?n si ya no necesitas el atractor para ahorrar espacio.

part_attractor_destroy_all(ps) Destruye todos los atractores que hayan sido creados en el sistema de part?culas ps.

part_attractor_exists(ps,ind) Devuelve true si el atractor ind existe dentro del sistema de part?culas ps.

part_attractor_clear(ps,ind) Devuelve los valores del atractor a sus valores por defecto.
part_attractor_position(ps,ind,x,y) Establece a (x,y) la posici?n del atractor ind.

part_attractor_force(ps,ind,force,dist,kind,aditive) Establece las propiedades de fuerza del atractor ind.

part_destroyer_create(ps) Crea un nuevo destructor en el sistema de part?culas ps. Devuelve el ?ndice del destructor. Este ?ndice debe usarse en las llamadas a las funciones siguientes para configurar las
propiedades del destructor.

part_destroyer_destroy(ps,ind) Destruye el destructor ind dentro del sistema de part?culas ps. Llama a esta funci?n cuando ya no hagas uso del destructor para ahorrar espacio.

part_destroyer_destroy_all(ps) Destruye todos los destructores que hayan sido creados en el sistema de part?culas ps.

part_destroyer_exists(ps,ind) Devuelve true si el destructor ind existe dentro del sistema de part?culas ps.

part_destroyer_clear(ps,ind) Devuelve el destructor a sus valores por defecto.

part_destroyer_region(ps,ind,xmin,xmax,ymin,ymax,shape) Establece la regi?n del destructor.

part_deflector_create(ps) Crea un nuevo deflector en el sistema de part?culas ps. Devuelve el ?ndice del deflector. Este ?ndice debe emplearse en las llamadas a las funciones siguientes para configurar las propiedades
del deflector.

part_deflector_destroy(ps,ind) Destruye el deflector ind del sistema de part?culas ps. Llama a esta funci?n cuando ya no necesites el deflector para ahorrar espacio.

part_deflector_destroy_all(ps) Destruye todos los deflectores que hayan sido creados en el sistema de part?culas ps.

part_deflector_exists(ps,ind) Devuelve true si el deflector ind existe dentro del sistema de part?culas ps.

part_deflector_clear(ps,ind) Devuelve el deflector a sus valores por defecto.

part_deflector_region(ps,ind,xmin,xmax,ymin,ymax) Establece la regi?n para el deflector.

part_deflector_kind(ps,ind,kind) Establece el tipo de deflector.

part_deflector_friction(ps,ind,friction) Establece la fricci?n del deflector.

parttype1 indica el tipo de part?cula a ser cambiado.

parttype2 indica el tipo de part?cula al que se cambiar?.

kind indica el tipo del modificador

ps_change_motion s?lo cambia los par?metros de movimiento de la part?cula, no el color o forma ni las propiedades de tiempo de vida

ps_change_shape s?lo cambia los par?metros de forma de la part?cula como el tama?o, el color y forma

ps_change_all cambia todos los par?metros, b?sicamente significa que la part?cula es destruida y se crea una nueva del nuevo tipo.

part_changer_create(ps) Crea un nuevo cambiador en el sistema de part?culas ps. Devuelve el ?ndice del cambiador. Este ?ndice debe usarse en las llamadas a las funciones siguientes para configurar las propiedades
del modificador.

part_changer_destroy(ps,ind) Destruye el cambiador ind en el sistema de part?culas ps. Llama a esta funci?n si ya no necesitas el cambiador para ahorrar espacio.

part_changer_destroy_all(ps) Destruye todos los cambiadores que hayan sido creados en el sistema de part?culas ps.

part_changer_exists(ps,ind) Devuelve true si el cambiador ind existe en el sistema de part?culas ps.

part_changer_clear(ps,ind) Devuelve las propiedades del cambiador a sus valores por defecto.

part_changer_region(ps,ind,xmin,xmax,ymin,ymax,shape) Establece la regi?n para el modificador.

part_changer_types(ps,ind,parttype1,parttype2) Establece el tipo de part?cula que debe ser cambiado y el tipo al que debe ser cambiado.

part_changer_kind(ps,ind,kind) Establece el tipo de modificador.

mplay_init_ipx()inicializa una conexi?n IPX.

mplay_init_tcpip(addr)inicializa una conexi?n TCP/IP. addr es una cadena que indica la direcci?n web o IP

mplay_init_modem(initstr,phonenr)inicializa una conexi?n v?a m?dem. initstr es la cadena de inicializaci?n para el m?dem (puede estar vac?a). phonenr es una cadena que contiene el n?mero telef?nico a marcar (p.
Ej. '0201234567'). S?lo se necesita el n?mero telef?nico al unirse a una sesi?n (ve a continuaci?n).

mplay_init_serial(portno,baudrate,stopbits,parity,flow) inicializa una conexi?n en serie.

mplay_connect_status()devuelve el estado de la conexi?n actual. 0=no hay conexi?n, 1=conexi?n IPX, 2=conexi?n TCP/IP, 3=conexi?n v?a m?dem, y 4=conexi?n serial.

mplay_end() finaliza la conexi?n actual.

mplay_ipaddress()devuelve la direcci?n IP de tu m?quina (p. Ej. '123.123.123.12') como cadena. Puedes p. Ej. mostrarla en pantalla. Esta rutina es lenta por lo que mejor no la llames a menudo.

mplay_session_create(sesname,playnumb,playername) Crea una nueva nueva sesi?n en la conexi?n actual. sesname es una cadena que indica el nombre de la sesi?n. playnumb indica el n?mero m?ximo de
jugadores permitidos para este juego (usa 0 para un n?mero arbitrario de jugadores). playname es tu nombre como jugador. Indica si ha tenido ?xito.

mplay_session_find() Busca todas las sesiones que a?n aceptan jugadores y devuelve el n?mero de sesiones encontradas.

mplay_session_name(numb) Devuelve el nombre de la sesi?n n?mero numb (0 es la primer sesi?n). Esta rutina puede ser llamada s?lo despu?s de haber llamado a la anterior.

mplay_session_join(numb,playername) Con esta rutina te unes a la sesi?n n?mero numb (0 es la primer sesi?n). playername es tu nombre como jugador. Indica si ha tenido ?xito.

mplay_session_mode(move) Indica si se mueve la sesi?n de host a otra computadora cuando el host actual cierre. move debe ser true o false (valor por defecto).

mplay_session_status() Devuelve el estado de la sesi?n actual. 0 = no hay sesi?n, 1 = sesi?n creada, 2 = se uni? a la sesi?n.

mplay_session_end() Finaliza la sesi?n para este jugador.

mplay_player_find() Busca todos los jugadores en la sesi?n actual y devuelve el n?mero de jugadores encontrados.

mplay_player_name(numb) Devuelve el nombre del jugador n?mero numb (0 es el primer jugador, el cual siempre eres t?). Esta rutina puede s?lo ser llamada despu?s de haber llamado a la anterior.

mplay_player_id(numb) Devuelve el id ?nico del jugador n?mero numb (0 es el primer jugador, el cual siempre eres t?). Esta rutina puede llamarse s?lo despu?s de haber llamado la primera. Este id es usado al enviar
y recibir mensajes de otros jugadores.

mplay_data_write(ind,val) Escribe el valor val (cadena o real) en la ubicaci?n ind (ind entre 0 y 10000).

mplay_data_read(ind) Devuelve el valor en la ubicaci?n ind (ind entre 0 y 10000). Inicialmente todos los valores son 0.

mplay_data_mode(guar) Indica si se usa o no transmisi?n garantizada para los datos compartidos. guar debe ser true (valor por defecto) o false.

mplay_message_send(player,id,val) Env?a un mensaje al jugador player (ya sea un identificador o un nombre; usa 0 para enviar el mensaje a todos los jugadores).

mplay_message_send_guaranteed(player,id,val) Env?a un mensaje garantizado al jugador player (ya sea un identificador o un nombre; usa 0 para enviar el mensaje a todos los jugadores).

mplay_message_receive(player) Recibe el siguiente mensaje de la cola de mensajes que lleg? del jugador player (identificador o nombre). Usa 0 para indicar mensajes de cualquier jugador.

mplay_message_id() Devuelve el identificador del ?ltimo mensaje recibido.

mplay_message_value() Devuelve el valor del ?ltimo mensaje recibido.

mplay_message_player() Devuelve el jugador que envi? el ?ltimo mensaje recibido.


mplay_message_name() Devuelve el nombre del jugador que envi? el ?ltimo mensaje recibido.

mplay_message_count(player) Devuelve el n?mero de mensajes restantes en la cola de espera del jugador player (usa 0 para contar todos los mensajes).

mplay_message_clear(player) Elimina todos los mensajes en la cola de espera del jugador player (usa 0 para eliminar todos los mensajes).

external_define(dll,name,calltype,restype,argnumb,arg1type,arg2type, ?) Define una funci?n externa. dll es el nombre del archivo dll. name es el nombre de las funciones. calltype es la convenci?n de llamada
empleada. Usa dll_cdecl o dll_stdcall. restype es el tipo del resultado. Usa ty_real o ty_string. argnumb es el n?mero de argumentos (0-11). Despu?s, para cada argumento debes especificar su tipo. Para ello usa
nuevamente ty_real o ty_string. Cuando hay m?s de 4 argumentos todos ellos deben ser de tipo ty_real.external_call(id,arg1,arg2,?) Llama a la funci?n externa con el id y los argumentos dados. Necesitas
proporcionar el n?mero correcto de argumentos del tipo correcto (real o string). La funci?n devuelve el resultado de la funci?n externa.

external_free(dll) Libera la DLL con el nombre indicado. Esto es particularmente necesario si el juego debiera remover la DLL. Mientras la DLL no haya sido liberada, no puede ser removida. Lo mejor es realizar esto
p. Ej. en el evento game end.

execute_string(str) Ejecuta la pieza de c?digo en la cadena str.

execute_file(fname) Ejecuta el c?digo en el archivo fname.

window_handle() Devuelve el handle de la ventana principal.
175
Código (Parte 4) [Seleccionar]
MCI_command(str) Esta funci?n env?a el comando al sistema multimedia de Windows usando el Media Control Interface (MCI, Interfaz de Control de Medios). Devuelve la cadena de texto de resultado.

show_image(fname,full,delay) Muestra una ventana con una imagen. fname es el nombre del archivo de imagen (?nicamente .bmp, .jpg y .wmf), pero debes poner los archivos en el directorio del juego tu mismo. FULL indica si deseas mostrarlo en pantalla completa. DELAY es el retardo en segundos antes de volver al juego.

show_video(fname,full,loop) Muestra una ventana de video. FNAME es el nombre del archivo de video (.avi,.mpg), pero debes poner este archivo en el directorio del juego tu mismo. FULL indica si deseas mostrarlo en pantalla completa. DELAY es el retardo en segundos antes de volver al juego.

show_info() Muestra la informaci?n del juego.

load_info(fname) Carga la informaci?n del juego con el nombre de archive FNAME, el cual deber?a ser un archivo RTF. Esto hace posible mostrar diferentes archivos de ayuda, en diferentes momentos.

show_message(str) Muestra un cuadro de dialogo con un string STR como mensaje.

show_message_ext(str,but1,but2,but3) Muestra un cuadro de di?logo con el string STR como mensaje, m?s un m?ximo de 3 botones. But1,but2 y but3 contienen el texto de cada bot?n. Un string vac?o significa que el bot?n no se mostrar?. En los textos puedes usar el s?mbolo ?&? para indicar que el siguiente car?cter debe ser usado como acceso directo a ese bot?n (p.e. ?&Acepto?, si se presiona ?A? se simula la presi?n del bot?n). Esta funci?n devuelve el n?mero del bot?n presionado.

get_integer(str,def) Pregunta un n?mero al jugador por medio de un cuadro de di?logo. STR es el mensaje, DEF es el n?mero predeterminado que se mostrar?.

get_string(str,def) Pregunta un string al jugador en un cuadro de di?logo. STR es el mensaje, DEF es el valor predeterminado.

message_text_font(name,size,color,style) Establece la fuente para el texto de los cuadros de di?logo (esta debe ser una fuente normal de Windows, no una de las fuentes de recurso que usas en tu juego!) STYLE indica el estilo de la fuente (0=normal, 1=negrita, 2=cursiva, 3=negrita y cursiva).

message_button_font(name,size,color,style) Establece la fuente para los botones en los cuadros de di?logo. STYLE indica el estilo de fuente. (0=normal, 1=negrita, 2=cursiva, 3=negrita y cursiva).

message_input_font(name,size,color,style) Establece la fuente para el campo de entrada en los cuadros de di?logo. STYLE indica el estilo de fuente. (0=normal, 1=negrita, 2=cursiva, 3=negrita y cursiva).

message_mouse_color(col) Establece el color de la fuente para los botones en los cuadros de di?logo cuando el mouse est? sobre ellos.

message_input_color(col) Establece el color para el fondo del campo de entrada en los cuadros de di?logo.

message_caption(show,str) Establece el t?tulo del cuadro de di?logo. SHOW indica si se deber?a mostrar el borde (1) o no (0) y STR indica el t?tulo cuando el borde si es mostrado.

message_position(x,y) Establece la posici?n para los cuadros de di?logo en la pantalla.

show_menu(str,def) Muestra un men? pop-up. STR indica el texto del men?. Este consiste en diferentes opciones del men? con una barra vertical entre ellas. Por ejemplo, str = ?menu0|menu1|menu2?. Cuando la primera opci?n es seleccionada, se devuelve un 0, para la segunda un 1, etc. Cuando ninguna opci?n es seleccionada, el valor predeterminado def es devuelto.

show_menu_pos(x,y,str,def) Muestra un men? popup, como en la funci?n anterior, pero en la posici?n x, y en la pantalla.

get_open_filename(filter,fname) Le pide al jugador un archive para abrir, con el filtro (FILTER) dado. El filtro tiene la forma ?nombre1|m?scara1|nombre2|m?scara2? . Una m?scara contiene diferentes opciones con un ';' (punto y coma) entre ellas. '*' (asterisco) significa cualquier string.

Por ejemplo: ?Mapa de bits|*bmp;*.wmf?.Si el jugador presiona Cancel, un string vac?o es devuelto.

get_save_filename(filter,fname) Pide un archivo para guardarlo, con el filtro dado. Si el jugador presiona Cancel, un string vac?o es devuelto.

get_directory(dname) Pide un directorio. DNAME es el nombre predeterminado. Si el usuario presiona Cancel, un string vac?o es devuelto.

get_directory_alt(capt,root) Una forma alternativa de preguntar por un directorio. CAPT es el titulo a mostrar. ROOT es la ra?z del diagrama del directorio a mostrar. Usa un string vac?o para mostrar el diagrama completo. Si el usuario presiona Cancel, un string vac?o es devuelto.

show_error(str,abort) Muestra un mensaje de error est?ndar (y/o escribe el error al archivo de registros). ABORT indica si el juego deber?a cerrarse (true-abortar, false-ignorar).

highscore_show(numb) Muestra la tabla de highscores. NUMB es un nuevo puntaje. Si el puntaje es suficientemente bueno para ser agregado a la lista, el jugador puede introducir un nombre. Usa -1 para ?nicamente mostrar la lista actual.

highscore_set_background(back) Establece la imagen de fondo. BACK debe ser el ?ndice de uno de los recursos de fondo.

highscore_set_border(show) Establece si la forma de highscore debe mostrar un borde o no.

highscore_set_font(name,size,style) Establece la fuente usada para el texto en la tabla. (Esta es una fuente normal de Windows, no una de los recursos de fuente). Debes especificar un nombre y un estilo (0=normal, 1=negrita, 2=cursiva, 3=negrita y cursiva).highscore_set_colors(back,new,other)Establece los colores usados para el fondo, el de una nueva entrada en la tabla, y el de las dem?s entradas.
entradas.

highscore_set_strings(caption,nobody,escape) Cambia los diferentes strings predeterminados usados al mostrar la tabla de highscores. CAPTION es el t?tulo de la forma. NOBODY es el string usado cuando no hay nadie en un lugar en particular. ESCAPE es el string en el inferior indicando que se debe presionar la tecla ESC.

highscore_show_ext(numb,back,border,col1,col2,name,size) Muestra la tabla de records con diferentes opciones (tambi?n puede lograrse usando las funciones anteriores). NUMB es el nuevo puntaje. Si el puntaje es suficientemente bueno para ser agregado a la lista, el jugador puede introducir un nombre. Usa -1 para mostrar simplemente la lista actual. BACK es la imagen de fondo a usar, BORDER indica si se debe mostrar o no el borde. COL1 es el color para la nueva entrada, COL2 para las dem?s entradas. NAME es el nombre de la fuente a usar, y SIZE es el tama?o de la fuente.

highscore_clear() Limpia la tabla de puntajes.

highscore_add(str,numb) Agrega al jugador con el nombre STR y puntaje NUMB a la lista.

highscore_add_current() Agrega el puntaje actual a la lista de records. Tambi?n se le pide al jugador que proporcione un nombre.

highscore_value(place) Devuelve el puntaje de la persona en el lugar PLACE(1-10). Esto puede ser usado para dibujar tu propia lista de puntajes.

highscore_name(place) Devuelve el nombre de la persona con el lugar PLACE(1-10).

draw_highscore(x1,y1,x2,y2) Dibuja la tabla de puntajes en la room, con la caja dada (x1,y1,x2,y2), usando la fuente actual.

sprite_exists(ind) Devuelve si el sprite con el ?ndice (ind) especificado existe.

sprite_get_name(ind) Devuelve el nombre del sprite con el ind especificado.

sprite_get_number(ind) Devuelve el n?mero de subim?genes del sprite con el ?ndice dado.

sprite_get_width(ind) Devuelve el ancho del sprite con el ?ndice especificado.

sprite_get_height(ind) Devuelve la altura del sprite con el ?ndice dado.

sprite_get_transparent(ind) Devuelve si el sprite con el ?ndice especificado utiliza transparencia.

sprite_get_smooth(ind) Devuelve si el sprite tiene los bordes suavizados.

sprite_get_preload(ind) Devuelve si el sprite debe ser cargado al principio del juego.

sprite_get_xoffset(ind) Devuelve el x-offset (punto de origen en x) del sprite con el ?ndice especificado.

sprite_get_yoffset(ind) Devuelve el y-offset (punto de origen en y) del sprite con el ?ndice especificado.

sprite_get_bbox_left(ind) Devuelve el valor del l?mite izquierdo del sprite (bounding box) con el ?ndice especificado.

sprite_get_bbox_right(ind) Devuelve el valor del l?mite derecho del sprite (bounding box) con el ?ndice especificado.

sprite_get_bbox_top(ind) Devuelve el valor del l?mite superior del sprite (bounding box) con el ?ndice especificado.

sprite_get_bbox_bottom(ind) Devuelve el valor del l?mite inferior del sprite (bounding box) con el ?ndice especificado.

sprite_get_bbox_mode(ind) Devuelve el modo usado para la caja de controno del sprite (0=automatic, 1=full image, 2=manual).

sprite_get_precise(ind) Devuelve si el sprite con el ?ndice dado utiliza la colisi?n precisa (precise collision checking).

sound_exists(ind) Devuelve si un sonido con el ?ndice dado existe.

sound_get_name(ind) Devuelve el nombre del sonido con el ?ndice dado.

sound_get_kind(ind) Devuelve el tipo de sonido del sonido especificado (0=normal, 1=background, 2=3d, 3=mmplayer).

sound_get_preload(ind) Devuelve si el sonido especificado debe cargarse al principio del juego.

sound_discard(index) Elimina el sonido indicado de la memoria de audio.

sound_restore(index) Carga el sonido indicado en la memoria de audio para que se pueda utilizar cuando se necesite inmediatamente.

background_exists(ind) Devuelve si el background (fondo) con el ?ndice dado existe.

background_get_name(ind) Devuelve el nombre del fondo con el ?ndice indicado.

background_get_width(ind) Devuelve el ancho del fondo con el ?ndice indicado.

background_get_height(ind) Devuelve la altura del fondo con el ?ndice especificado.

background_get_transparent(ind) Devuelve si el fondo con el ?ndice indicado es transparente.

background_get_smooth(ind) Devuelve si el fondo tiene los bordes suavizados.

background_get_preload(ind) Devuelve si el fondo debe ser cargado al principio del juego.

font_exists(ind) Devuelve si la fuente con el ?ndice especificado existe.

font_get_name(ind) Devuelve el nombre de la fuente con el ?ndice especificado.

font_get_fontname(ind) Devuelve el nombre de fuente (arial, verdana,...) de la fuente con el ?ndice especificado.

font_get_bold(ind) Devuelve si la fuente con el ?ndice especificado est? en negrita.

font_get_italic(ind) Devuelve si la fuente con el ?ndice especificado es cursiva.

font_get_first(ind) Devuelve el primer car?cter de la fuente con el ?ndice especificado.

font_get_last(ind) Devuelve el ?ltimo car?cter de la fuente con el ?ndice especificado.

path_exists(ind) Devuelve si el path con el ?ndice dado existe.

path_get_name(ind) Devuelve el nombre del path con el ?ndice dado.

path_get_length(ind) Devuelve la longitud del path con el ?ndice indicado.

path_get_kind(ind) Devuelve el tipo de conexiones del path con el ?ndice especificado (0=recto, 1=curvo).

path_get_closed(ind) Devuelve si el path es cerrado o no.

path_get_precision(ind) Devuelve la precisi?n utilizado para paths redondeadas.

path_get_number(ind) Devuelve el n?mero de puntos del path.

path_get_point_x(ind,n) Devuelve la coordenada x del punto n del path. El primer punto es el 0.

path_get_point_y(ind,n) Devuelve la coordenada y del punto n del path. El primer punto es el 0.

path_get_point_speed(ind,n) Devuelve la velocidad del punto n del path. El primer punto es el 0.

path_get_x(ind,pos) Devuelve la coordenada x en la posici?n pos del path (pos debe estar comprendida entre 0 y 1).

path_get_y(ind,pos) Devuelve la coordenada y en la posici?n pos del path (pos debe estar comprendida entre 0 y 1).

path_get_speed(ind,pos) Devuelve la velocidad en la posici?n pos del path (pos debe estar comprendida entre 0 y 1).

script_exists(ind) Devuelve si un script con el ?ndice indicado existe.

script_get_name(ind) Devuelve el nombre del script con el ?ndice indicado.

script_get_text(ind) Devuelve la cadena de texto del script con el ?ndice dado.

timeline_exists(ind) Devuelve si la time line con el ?ndice especificado existe.

timeline_get_name(ind) Devuelve el nombre de la time line con el ?ndice especificado.

object_exists(ind) Devuelve si el objeto con el ?ndice dado existe.

object_get_name(ind) Devuelve el nombre del objeto con el ?ndice dado.

object_get_sprite(ind) Devuelve el ?ndice del sprite por defecto del objeto con el ?ndice especificado.

object_get_solid(ind) Devuelve si el objeto con el ?ndice dado es s?lido por defecto.

object_get_visible(ind) Devuelve si el objeto con el ?ndice dado es visible por defecto.

object_get_depth(ind) Devuelve la profundidad del objeto con el ?ndice dado.

object_get_persistent(ind) Devuelve si el objeto con el ?ndice se?alado es persistente.

object_get_mask(ind) Devuelve el ?ndice de la m?scara del objeto con el ?ndice dado (-1 si no tiene m?scara especial).

object_get_parent(ind) Devuelve el ?ndice del objeto pariente del objeto ind (-1 si no tiene pariente).

object_is_ancestor(ind1,ind2) Devuelve si el objeto ind2 es un parent del objeto ind1.

room_exists(ind) Devuelve si el cuarto con el ?ndice se?alado existe.

room_get_name(ind) Devuelve el nombre de la habitaci?n con el ?ndice dado.

sprite_set_offset(ind,xoff,yoff) Establece el offset del sprite.

sprite_set_bbox_mode(ind,mode) Establece a mode el tipo de caja de colisi?n del sprite (0 = autom?tica, 1 = imagen completa, 2 = manual).

sprite_set_bbox(ind,left,top,right,bottom) Configura la caja de colisi?n del sprite con ?ndice ind. Funciona solo cuando es manual el modo de caja de colisi?n.

sprite_set_precise(ind,mode) Establece si el sprite con ?ndice ind usa chequeo de colisi?n precisa (true o false).

sprite_duplicate(ind) Crea una copia del sprite con ?ndice ind. Devuelve el ?ndice del nuevo sprite. Devuelve -1 si se presenta alg?n error.

sprite_assign(ind,spr) Asigna el sprite spr al al sprite con ?ndice ind. Es decir, crea una

copia del sprite. De esta manera f?cilmente puedes asignar un sprite existente a p. ej. un nuevo sprite.

sprite_merge(ind1,ind2) Fusiona las imagines del sprite ind2 en el sprite ind1, agreg?ndolas al final de este ultimo. Si los tama?os no corresponden los sprites son encogidos. ?No se elimina el sprite ind2!

sprite_add(fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig) Agrega a los recursos sprites la imagen del archivo fname. Solo se pueden agregar im?genes bmp, jpg y gif. Cuando se trata de un bmp o jpg la imagen puede ser una tira que contenga las subim?genes del sprite una junto a la otra. Se usa imgnumb para indicar el n?mero de subim?genes (1 para una sola). Este argumento no es empleado con im?genes gif (animadas); se emplea el n?mero de im?genes del archivo gif. precise indica si se usar? chequeo de colisi?n precisa. transparent indica si la imagen es parcialmente transparente. smooth indica si se alisar?n los bordes. preload indica si se precargar? la imagen en la memoria de texturas. xorig y yorig indican la posici?n de origen en el sprite.

sprite_replace(ind,fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig) Lo mismo que la anterior pero en este caso se reemplaza al sprite con ?ndice ind. El valor devuelvo por la funci?n indica si tuvo ?xito la operaci?n.

sprite_create_from_screen(x,y,w,h,precise,transparent,smooth,preload,xorig,yorig) Crea un nuevo sprite copiando de un ?rea indicada de la pantalla. Esto permite crear cualquier sprite que se desee.

sprite_add_from_screen(ind,x,y,w,h) Agrega un ?rea de la pantalla como la siguiente subimagen del sprite con ?ndice ind. x, y, w y h indican las dimensiones del ?rea en pantalla (coordenadas x, y, ancho y alto).

sprite_delete(ind) Elimina el sprite, liberando la memoria utilizada.

sprite_set_alpha_from_sprite(ind,spr) Cambia los valores alfa (transparencia) del sprite con ?ndice ind usando los valores de luminosidad (hue) del sprite spr. Esta acci?n no se puede deshacer.

sound_add(fname,kind,preload) Agrega un recurso de sonido al juego. Fname es el nombre del archivo de sonido. kind indica el tipo de sonido (0=normal, 1=de fondo, 2=3D, 3=mmplayer), preload indica si el sonido debiera ser almacenado inmediatamente en la memoria de audio (true o false). La funci?n devuelve el ?ndice del nuevo sonido, que puede utilizarse para reproducirlo. (O devolver? -1 si ocurriera alg?n error, p. ej. que el archivo no existiera).

sound_replace(index,fname,kind,loadonuse) Lo mismo que la anterior pero esta vez no se crea un nuevo sonido sino que se sustituye el que tenga ?ndice index, liberando el anterior sonido. El valor devuelto por esta funci?n indica si tuvo ?xito la operaci?n.

sound_delete(index) Elimina el sonido index, liberando toda la memoria asociada con ?l. Ya no es posible recuperarlo.

background_duplicate(ind) Crea un duplicado del fondo con el ?ndice ind. Devuelve el ?ndice del nuevo fondo. Cuando se presenta alg?n error se devuelve -1.

background_assign(ind,back) Asigna el fondo back al fondo ind. Esto es, crea una copia del fondo.

background_add(fname,transparent,smooth,preload) Agrega la imagen almacenada en el archivo fname al juego de recursos background. Solo se pueden manejar im?genes bmp y jpg. transparent indica si la imagen es parcialmente transparente. smooth indica si se alisar?n los bordes. preload indica si se precargar? la imagen en la memoria de texturas. La funci?n devuelve el ?ndice del nuevo fondo, el cual se puede usar para dibujarlo o para asignarlo a la variable background_index[0] para hacerlo visible en la habitaci?n actual. Devuelve -1 cuando ocurre alg?n error.

background_replace(ind,fname,transparent,smooth,preload) Lo mismo que la anterior pero en este caso el fondo con ?ndice ind es reemplazado. La funci?n devuelve un valor indicando si tuvo ?xito la operaci?n. Cuando el fondo reemplazado es visible en la habitaci?n ser? reemplazado.

background_create_color(w,h,col,preload) Crea un nuevo fondo del tama?o dado (w=ancho, h=alto) con el color col. Devuelve el ?ndice del nuevo fondo, -1 si ocurre alg?n error.

background_create_gradient(w,h,col1,col2,kind,preload) Crea un fondo del tama?o indicado (w=ancho, h=alto) coloreado con un gradiente. col1 y col2 indican los dos colores. kind es un n?mero entre 0 y 5 que indica el tipo de gradiente: 0=horizontal, 1=vertical, 2=rect?ngulo, 3=elipse, 4=doble horizontal, 5=doble vertical. Esta funci?n devuelve el ?ndice del nuevo fondo, ? -1 si ocurre alg?n error.

background_create_from_screen(x,y,w,h,transparent,smooth,preload) Crea un fondo copiando un ?rea indicada de la pantalla (x, y=coordenadas esquina superior izquierda, w=ancho, h=alto). Esta funci?n permite crear cualquier fondo que se desee.

background_delete(ind) Elimina el fondo, liberando la memoria utilizada.

background_set_alpha_from_background(ind,back) Cambia los valores alfa (transparencia) del fondo con ?ndice ind usando los valores hue del fondo back. Esta acci?n no puede deshacerse.

font_add(name,size,bold,italic,first,last) Agrega una nueva fuente y devuelve su ?ndice. Se indica el tama?o (size), si es negrita (bold), cursiva (italic) y el primer y ultimo caracteres que deben ser creados (first y last).

font_add_sprite(spr,first,prop,sep) Agrega una nueva fuente y devuelve su ?ndice. La fuente es creada de un sprite. El sprite debe contener una subimagen para cada car?cter.

font_replace(ind,name,size,bold,italic,first,last) Reemplaza la fuente ind con una nueva fuente, indicando el nombre (name), tama?o (size) si es negrita (bold) o cursive (italic) y el primer y ?ltimo car?cter que deben crearse.

font_replace_sprite(ind,spr,first,prop,sep) Reemplaza la fuente ind con una nueva fuente basada en el sprite spr.

font_delete(ind) Elimina la fuente con ?ndice ind, liberando la memoria utilizada.

path_set_kind(ind,val) Establece el tipo de conexiones de la trayectoria ind (0=recta, 1=suave) (0=straight, 1=smooth).

path_set_closed(ind,closed) Establece si la trayectoria ind debe ser cerrada (true) o abierta (false).

path_set_precision(ind,prec) Establece la precisi?n con la que se calcula la suavidad de la trayectoria (prec debe estar entre 1 y 8).

path_add() Agrega una nueva trayectoria vac?a. Devuelve el ?ndice de la trayectoria.

path_delete(ind) Elimina la trayectoria con ?ndice ind.

path_duplicate(ind) Crea un duplicado de la trayectoria ind. Devuelve el ?ndice de la nueva trayectoria.

path_assign(ind,path) Asigna la trayectoria path a la trayectoria ind. Por tanto, crea una copia de la trayectoria. De esta manera se puede f?cilmente configurar una trayectoria existente a p. Ej. otra trayectoria nueva.

path_add_point(ind,x,y,speed) Agrega un punto a la trayectoria con ?ndice ind, en la posici?n (x,y) y con factor de velocidad speed. Se debe recordar que un factor de 100 corresponde a la velocidad actual. Valores
inferiores indican una reducci?n de la velocidad y valores superiores un incremento de la misma.

path_insert_point(ind,n,x,y,speed) Inserta un punto en la trayectoria con ?ndice ind antes del punto n, en la posici?n (x,y) y con factor de velocidad speed.

path_change_point(ind,n,x,y,speed) Cambia el punto n de la trayectoria ind a la posici?n (x,y) y con factor de velocidad speed.

path_delete_point(ind,n) Elimina el punto n de la trayectoria con ?ndice ind.

path_clear_points(ind) Limpia todos los puntos de la trayectoria ind, volvi?ndola una trayectoria vac?a.

path_reverse(ind) Invierte la trayectoria ind.

path_mirror(ind) Voltea horizontalmente la trayectoria ind (con respecto a su centro).

path_flip(ind) Voltea verticalmente la trayectoria ind (con respecto a su centro).

path_rotate(ind,angle) Rota angle grados la trayectoria ind en contra de las manecillas del reloj (alrededor de su centro).

path_scale(ind,xscale,yscale) Escala la trayectoria ind con los factores indicados (con respecto a su centro).

path_shift(ind,xshift,yshift) Mueve la trayectoria con los valores indicados.

execute_string(str) Ejecuta el fragmento de c?digo en la cadena str.

execute_file(fname) Ejecuta el c?digo dentro del archive fname.

script_execute(scr,arg0,arg1,...) Ejecuta el script con ?ndice scr con los argumentos indicados.

timeline_add() Agrega una nueva l?nea de tiempo. Devuelve el ?ndice de la misma.

timeline_delete(ind) Elimina la l?nea de tiempo con ?ndice ind. Debe asegurarse que ninguna instancia emplee dicha l?nea de tiempo en ninguna habitaci?n.

timeline_moment_add(ind,step,codestr) Agrega una acci?n de c?digo a la l?nea de tiempo en el instante step. codestr contiene el c?digo para las acciones. Si el step no existe se crea. Por lo que pueden agregarse m?ltiples acciones de c?digo para el mismo instante.

timeline_moment_clear(ind,step) Se puede utilizar esta funci?n para borrar todas las acciones de una l?nea de tiempo (ind) en un instante (step) en particular.object_set_sprite(ind,spr) Establece el sprite para el objeto con ?ndice ind. El valor -1 remueve del objeto el sprite actual.

object_set_solid(ind,solid) Establece si al crear instancias del objeto ind deber?n considerarse s?lidas (true o false).


object_set_visible(ind,vis) Establece si las instancias creadas del objeto ind deben ser visibles por defecto (true o false).

object_set_depth(ind,depth) Establece la profundidad (depth) por defecto de las instancias creadas del objeto ind.

object_set_persistent(ind,pers) Establece si las instancias creadas del objeto deben ser persistentes por defecto (true o false).

object_set_mask(ind,spr) Establece el sprite para la m?scara del objeto con ?ndice ind. Para que la m?scara sea el sprite del objeto se puede usar -1.

object_set_parent(ind,obj) Establece el padre (obj) para el objeto ind. Si se usa -1 se indica que el objeto ind no tiene padre. El cambiar el objeto padre cambia el comportamiento de las instancias del objeto.

object_add() Agrega un nuevo objeto. Devuelve el ?ndice del mismo. Despu?s se puede utilizar este ?ndice en las rutinas anteriores para configurar ciertas propiedades del objeto y luego se puede utilizar el ?ndice para crear instancias del objeto.

object_delete(ind) Elimina el objeto con ?ndice ind. Se debe asegurar de que no existan instancias de este objeto en ninguna de las habitaciones.

object_event_add(ind,evtype,evnumb,codestr) Para asignarle un comportamiento a un objeto se deben definir eventos para dicho objeto. Solo se pueden agregar acciones de c?digo.

object_event_clear(ind,evtype,evnumb) Se puede emplear esta funci?n para borrar todas las acciones para un evento en particular.

room_set_width(ind,w) Establece el ancho (w) para la habitaci?n con ?ndice ind.

room_set_height(ind,h) Establece la altura (h) para la habitaci?n con ?ndice ind.

room_set_caption(ind,str) Establece el t?tulo (caption) para la habitaci?n con ?ndice ind.

room_set_persistent(ind,val) Establece si la habitaci?n con ?ndice ind ser? persistente o no (val).

room_set_code(ind,str) Configura el c?digo de inicializaci?n (str) para la habitaci?n con ?ndice ind.

room_set_background_color(ind,col,show) Configura las propiedades de color para la habitaci?n con ?ndice ind si no cuenta con una imagen de fondo. col indica el color y show indica si el color debe mostrarse o no.

room_set_background(ind,bind,vis,fore,back,x,y,htiled,vtiled,hspeed,vspeed,alpha) Establece el fondo con ?ndice bind (0-7) como fondo.

room_set_view(ind,vind,vis,xview,yview,wview,hview,xport,yport,wport,hport,hbord

er,vborder,hspeed,vspeed,obj) Establece la vista con ?ndice vind (0-7)

room_set_view_enabled(ind,val) Establece si las vistas deben habilitarse para la habitaci?n con ?ndice ind.

room_add() Agrega una nueva habitaci?n.

room_duplicate(ind) Agrega una copia de la habitaci?n con ?ndice ind. Devuelve el ?ndice de la nueva habitaci?n.

room_assign(ind,room) Asigna la habitaci?n room al ?ndice ind. Por tanto, esta funci?n crea una copia de la habitaci?n.

room_instance_add(ind,x,y,obj) Agrega a la habitaci?n ind una nueva instancia del objeto obj, coloc?ndola en la posici?n x, y. Devuelve el ?ndice de la instancia.

room_instance_clear(ind) Elimina todas las instancias dentro de la habitaci?n ind.

room_tile_add(ind,back,left,top,width,height,x,y,depth) Agrega un nuevo tile a la habitaci?n en la posici?n indicada.

room_tile_add_ext(ind,back,left,top,width,height,x,y,depth,xscale, yscale,alpha) Lo mismo que la anterior rutina pero tambi?n se puede especificar un factor de escalado en las direcciones x e y, y una transparencia alpha para el tile.

room_tile_clear(ind) Elimina todos los tiles de la habitaci?n indicada.

tile_add(background,left,top,width,height,x,y,depth) A?ade una nueva tile al cuarto con las propiedades indicadas. Esta funci?n devuelve la id de la nueva tile que se puede usar m?s tarde en el resto de funciones.

tile_delete(id) Elimina el tile con la id especificada.

tile_exists(id) Devuelve si existe una tile con la id especificada.

tile_get_x(id) Devuelve la posici?n x de la tile con la id especificada.

tile_get_y(id) Devuelve la posici?n y de la tile con la id especificada.

tile_get_left(id) Devuelve el valor de la propiedad left (izquierda) de la tile con la id especificada.

tile_get_top(id) Devuelve el valor de la propiedad top (arriba) de la tile con la id especificada.

tile_get_width(id) Devuelve la anchura de la tile con la id especificada.

tile_get_height(id) Devuelve la altura de la tile con la id especificada.

tile_get_depth(id) Devuelve la profundidad de la tile con la id especificada.

tile_get_visible(id) Devuelve si la tile con la id especificada es visible o no.

tile_get_xscale(id) Devuelve el factor horizontal de escalado de la tile con la id especificada.

tile_get_yscale(id) Devuelve el factor vertical de escalado de la tile con la id especificada.

tile_get_background(id) Devuelve el fondo de la tile con la id especificada.

tile_get_blend(id) Devuelve el color de te?ido de la tile con la id especificada.

tile_get_alpha(id) Devuelve el factor de transparencia de la tile con la id especificada.

tile_set_position(id,x,y) Coloca la tile con la id especificada en la posici?n x,y.

tile_set_region(id,left,top,width,height) Cambia la regi?n del tile con la id especificada sobre su fondo.

tile_set_background(id,background) Cambia el fondo de la tile con la id especificada.

tile_set_visible(id,visible) Cambia la visibilidad de la tile con la id especificada.

tile_set_depth(id,depth) Cambia la profundidad de la tile con la id especificada.

tile_set_scale(id,xscale,yscale) Cambia los factores de escala de la tile con la id especificada.

tile_set_blend(id,color) Cambia el color de te?ido de la tile con la id especificada. S?lo disponible en la versi?n registrada!

tile_set_alpha(id,alpha) Cambia la transparencia de la tile con la id especificada.

tile_layer_hide(depth) Oculta todas las tiles con la profundidad indicada.

tile_layer_show(depth) Muestra todas las tiles con la profundidad indicada.

tile_layer_delete(depth) Elimina todas las tiles con la profundidad indicada..

tile_layer_shift(depth,x,y) Mueve todas las tiles con la profundidad indicada siguiendo el vector (x,y). Esta funci?n se puede usar para capas de tiles m?viles.

tile_layer_find(depth,x,y) Devuelve la id de la tile con la profundidad indicada que se encuentra en la posici?n (x,y). Si no se encuentra ninguna tile la funci?n devuelve -1.

tile_layer_delete_at(depth,x,y) Elimina la tile con la profundidad indicada que se encuentra en la posici?n (x,y). Si se encentran varias tiles en esa posici?n y con la profundidad indicada se eliminan todas.

tile_layer_depth(depth,newdepth) Cambia la profundidad de todas las tiles con la profundidad indicada a la nueva profundidad. Es decir, con esta funci?n puedes mover capas enteras de tiles a otra profundidad.

window_set_visible(visible) Hace que la ventana se vuelva visible o invisible. Normalmente la ventana es visible durante todo el juego. Cuando la ventana sea invisible el programa no ejecutar? ni recibir? los eventos del teclado.

window_get_visible() Devuelve si la ventana es visible.

window_set_fullscreen(full) Hace que la ventana ocupe toda la pantalla (modo pantalla completa) o no.

window_get_fullscreen() Devuelve si la ventana ocupa toda la pantalla.

window_set_showborder(show) Indica si el borde alrededor de la ventana debe mostrarse (si la ventana est? a pantalla completa el borde no se muestra).

window_get_showborder() Devuelve si el borde de la ventana es visible cuando ?sta no est? a pantalla completa.

window_set_showicons(show) Indica si deben mostrarse los iconos de la ventana (minimizar, maximizar y cerrar). Si la ventana est? a pantalla completa no se muestran.

window_get_showicons() Devuelve si los iconos de la ventana son visibles.

window_set_stayontop(stay) Indica si la ventana de be mostrarse siempre por encima de otras ventanas que puedan existir.

window_get_stayontop() Devuelve si la ventana se mantiene siempre por encima de las dem?s.

window_set_sizeable(sizeable) Indica si el jugador puede cambiar el tama?o de la ventana. El jugador s?lo podr? hacer esto si el borde de la ventana es visible y la ventana no est? a pantalla completa.

window_get_sizeable() Devuelve si el jugador puede cambiar el tama?o de la ventana.

window_set_caption(caption) Indica el t?tulo de la ventana. Normalmente esto se especifica al definir el room y se cambia usando la variable room_caption.

window_get_caption() Devuelve el t?tulo de la ventana.

window_set_cursor(curs) Indica el puntero que se usar? en la ventana.
cr_default

cr_none

cr_arrow

cr_cross

cr_beam

cr_size_nesw

cr_size_ns

cr_size_nwse

cr_size_we

cr_uparrow

cr_hourglass

cr_drag

cr_nodrop

cr_hsplit

cr_vsplit

cr_multidrag

cr_sqlwait

cr_no

cr_appstart

cr_help
cr_handpoint

cr_size_all

window_get_cursor() Devuelve el cursor utilizado en la ventana.

window_set_color(color) Indica el color de la parte de la ventana que no se usa para mostrar el room.

window_get_color() Devuelve el color de la ventana.

window_set_region_scale(scale,adaptwindow) Si la ventana es mayor que el cuarto actual el cuarto se muestra centrado en la ventana. Con esta funci?n es posible indicar si queremos que el cuarto sea escalado
para que ocupe toda la ventana o una parte.

window_get_region_scale() Devuelve el factor de escala de la regi?n de dibujo.

window_set_position(x,y) Indica la posici?n de la ventana.

window_set_size(w,h) Indica el nuevo tama?o de la ventana. Observa que si el tama?o indicado es menor que la regi?n de dibujo se mantendr? lo suficientemente grande como para que la regi?n entre por completo dentro de ?l.

window_set_rectangle(x,y,w,h) Indica la nueva posici?n y medidas de la ventana (es como usar las dos funciones anteriores a la vez).

window_center() Centra la ventana en la pantalla.

window_default() Da a la ventana los valores por defecto de tama?o y posici?n (centrada).

window_get_x() Devuelve la coordenada x de la ventana.

window_get_y() Devuelve la coordenada y de la ventana.

window_get_width() Devuelve la anchura de la ventana.

window_get_height() Devuelve la altura de la ventana.

window_mouse_get_x() Devuelve la coordenada x del puntero en la ventana.

window_mouse_get_y() Devuelve la coordenada y del puntero en la ventana.

window_mouse_set(x,y) Indica la nueva posici?n del puntero en la ventana.

view_enabled Indica si las vistas est?n activadas en el cuarto actual.

view_current* La vista que actualmente se est? dibujando (0...7). Usa esta variable s?lo en el evento draw. Por ejemplo, puedes chequear el valor de esta variable para dibujar algo s?lo en unas vistas y no en otras. El valor de esta variable no se puede cambiar.

view_visible[0..7] Devuelve si la vista indicada es visible en la pantalla

view_xview[0..7] Posici?n X de la vista en el cuarto.

view_yview[0..7] Posici?n Y de la vista en el cuarto.

view_wview[0..7] Anchura de la vista en el cuarto.

view_hview[0..7] Altura de la vista en el cuarto.

view_xport[0..7] Posici?n X del puerto en la regi?n de dibujo.

view_yport[0..7] Posici?n Y del puerto en la regi?n de dibujo.

view_wport[0..7] Anchura del puerto en la regi?n de dibujo.

view_hport[0..7] Altura del puerto en la regi?n de dibujo.

view_angle[0..7] ?ngulo de rotaci?n usado para la vista en el cuarto (grados en sentido antihorario).

view_hborder[0..7] Tama?o en p?xeles del borde horizontal alrededor del objeto a seguir por la vista.

view_vborder[0..7] Tama?o en p?xeles del borde vertical alrededor del objeto a seguir por la vista.

view_hspeed[0..7] Velocidad horizontal m?xima de la vista.

view_vspeed[0..7] Velocidad vertical m?xima de la vista.

view_object[0..7] Objeto cuya instancia debe permanecer visible en la vista. Si hay varias instancias de este objeto se usar? la primera.

window_set_region_size(w,h,adaptwindow) Indica la anchura y altura de la regi?n de dibujo en la ventana. adaptwindow indica si el tama?o de la ventana debe adaptarse si la regi?n de dibujo no cabe dentro de ella. La ventana siempre se adaptar? si usas escalado fijo

window_get_region_width() Devuelve la anchura actual de la regi?n de dibujo.

window_get_region_height()Devuelve la altura actual de la regi?n de dibujo.

window_view_mouse_get_x(id) Devuelve la coordenada x del rat?n respecto a la vista indicada.

window_view_mouse_get_y(id) Devuelve la coordenada y del rat?n respecto a la vista indicada.

window_view_mouse_set(id,x,y) Indica la posici?n del rat?n respecto a la vista indicada.

window_views_mouse_get_x()Devuelve la coordenada x del rat?n respecto a la vista en la que se encuentra (es lo mismo que mouse_x).

window_views_mouse_get_y()Devuelve la coordenada y del rat?n respecto a la vista en la que se encuentra (es lo mismo que mouse_y).

window_views_mouse_set(x,y) Indica la posici?n del rat?n respecto a la primera vista que es visible.

transition_kind Indica el tipo de transici?n al pr?ximo nivel

176
Código (Parte 3) [Seleccionar]
visible : Si visible es cierto (1) la imagen se dibuja, en caso contrario no se dibuja. Las instancias invisibles aun son activas y crean eventos de colisi?n; Simplemente no puedes verlas. Definir la visibilidad como falso
es ?til para por ejemplo objetos controladores (hazlos tambi?n no s?lidos para evitar eventos de colisi?n con ellos) o palancas ocultas.

sprite_height* Indica el alto del sprite. Este valor no puede ser cambiado, pero puedes utilizarlo.

sprite_xoffset* Indica el offset horizontal del sprite, como esta definido en las propiedades del sprite. Este valor no puede ser cambiado, pero puedes utilizarlo.

sprite_yoffset* Indica el offset horizontal del sprite, como esta definido en las propiedades del sprite. Este valor no puede ser cambiado, pero puedes utilizarlo.

background_color Color de fondo para el cuarto.

background_showcolor Indica si se debe limpiar la pantalla con el color de fondo.

background_visible[0..7] Indica si el fondo indicado es visible o no. Por ejemplo, para indicar que el fondo n?mero 3 no debe mostrarse, deber?amos hacerlo as?:

background_visible[3]=false;

background_foreground[0..7] Indica si el fondo est? en primer plano (se dibujar? encima de todo lo dem?s, tapando todo lo que quede por debajo).

background_index[0..7] Imagen de fondo asignada al fondo indicado.

background_x[0..7] Posici?n x del fondo.

background_y[0...7] Posici?n y del fondo.

background_width[0...7]* Anchura de la imagen del fondo.

background_height[0...7]* Altura de la imagen del fondo.

background_htiled[0..7] Indica si el fondo debe repetirse horizontalmente para llenar toda la pantalla.

background_vtiled[0..7] Indica si el fondo debe repetirse verticalmente para llenar toda la pantalla.

background_xscale[0..7] Factor de escalado horizontal del fondo: un n?mero entre 0 y 1 har? la imagen m?s peque?a y un n?mero mayor que 1 la har? m?s grande. (Debe ser un valor positivo)

background_yscale[0..7] Factor de escalado vertical del fondo: un n?mero entre 0 y 1 har? la imagen m?s peque?a y un n?mero mayor que 1 la har? m?s grande. (Debe ser un valor positivo)

background_hspeed[0..7] Velocidad horizontal de scrolling del fondo, en p?xeles por step.

background_vspeed[0..7] Velocidad vertical de scrolling del fondo, en p?xeles por step. El scrolling es el movimiento del fondo, por lo tanto esto se refiere al movimiento vertical del fondo.

background_blend[0..7] Color de te?ido usado al dibujar el fondo. El valor por defecto es c_white. Esta variable s?lo se puede usar en la versi?n registrada!

background_alpha[0..7] Factor de transparencia usado al dibujar el fondo. 1 es el valor normal (imagen totalmente opaca) y 0 es totalmente transparente (utiliza valores intermedios para dibujar fondos parcialmente
transparentes).

draw_sprite(sprite,subimg,x,y) Dibuja la subimagen subimg (-1 = subimagen actual) del sprite con ?ndice sprite con su origen en la posici?n (x,y) sin te?irlo de ning?n color y sin usar transparencia.

draw_sprite_stretched(sprite,subimg,x,y,w,h) Dibuja la subimagen subimg del sprite con ?ndice sprite de forma que llene la regi?n con esquina superior-izquierda en (x,y), anchura w y altura h.

draw_sprite_tiled(sprite,subimg,x,y) Dibuja el sprite repiti?ndolo horizontal y verticalmente de forma que llene toda la pantalla. (x,y) es la posici?n donde se dibuja una de las copias del sprite.

draw_sprite_part(sprite,subimg,left,top,width,height,x,y) Dibuja la parte del sprite indicada con su esquina superior izquierda en (x,y). La parte del sprite que queremos dibujar se indica con left y top (coordenadas de
la esquina superior-izquierda) y width y height (anchura y altura del trozo que queremos dibujar).

draw_background(back,x,y) Dibuja el fondo en la posici?n (x,y), sin te?irlo de ning?n color y sin transparencia.

draw_background_stretched(back,x,y,w,h) Dibuja el fondo escalado de forma que ocupe la regi?n indicada.

draw_background_tiled(back,x,y) Dibuja el fondo repiti?ndolo en horizontal y vertical de forma que llene toda la pantalla.

draw_background_part(back,left,top,width,height,x,y) Dibuja el trozo indicado del fondo con su esquina superior-izquierda en la posici?n (x,y).

draw_sprite_ext(sprite,subimg,x,y,xscale,yscale,rot,color,alpha) Dibuja el sprite escalado con factores xscale (horizontal) e yscale (vertical) y rotado rot grados en sentido antihorario. color indica el color con el que
queremos te?ir el sprite (usa el color blanco c_white si no quieres te?ir el sprite de ning?n color) y alpha indica el factor de transparencia. Un valor igual a 0 hace la imagen totalmente transparente y un valor igual a 1
la hace totalmente opaca.

draw_sprite_stretched_ext(sprite,subimg,x,y,w,h,color,alpha) Dibuja el sprite escalado de forma que ocupe la regi?n indicada: esquina superior izquierda en (x,y), anchura w y altura h. color indica el color de te?ido y
alpha el factor de transparencia.

draw_sprite_tiled_ext(sprite,subimg,x,y,xscale,yscale,color,alpha) Dibuja el sprite repetido de forma que cubra toda la pantalla con factores de escala, color de te?ido y factor de transparencia.

draw_sprite_part_ext(sprite,subimg,left,top,width,height,x,y,xscale,yscale,color,alpha) Dibuja la parte indicada del sprite con factores de escala, color de te?ido y factor de transparencia.

draw_sprite_general(sprite,subimg,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) La funci?n m?s general para dibujar sprites. Dibuja la parte indicada de la subimagen subimg (-1 = subimagen actual) del sprite con ?ndice sprite situando su esquina superior-izquierda en la posici?n (x,y) y con factores de escala, ?ngulo de rotaci?n, un color de te?ido para cada una de las 4 esquinas del sprite y un factor de transparencia.

draw_background_general(back,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) La funci?n m?s general para dibujar fondos. Dibuja la parte indicada del fondo situando su esquina superior-izquierda en la posici?n (x,y) con factores de escala, ?ngulo de rotaci?n, un color de te?ido para cada una de las cuatro esquinas (en el orden arriba-izquierda, arriba-derecha, abajo-derecha y abajo-izquierda) y un factor de transparenciadraw_clear(col) Pinta todo el cuarto del color especificado.

draw_clear_alpha(col,alpha) Pinta todo el cuarto del color especificado y con el factor de transparencia indicado (muy ?til para superficies).

draw_point(x,y) Dibuja un punto en (x,y) en el color de dibujo actual. draw_line(x1,y1,x2,y2) Dibuja una l?nea desde (x1,y1) hasta (x2,y2).

draw_rectangle(x1,y1,x2,y2,outline) Dibuja un rect?ngulo. outline indica si s?lo debe dibujarse el borde (true) o si el rect?ngulo debe estar relleno (false).

draw_roundrect(x1,y1,x2,y2,outline) Dibuja un rect?ngulo redondeado. outline indica si s?lo debe dibujarse el borde (true) o si el rect?ngulo debe estar relleno (false).

draw_triangle(x1,y1,x2,y2,x3,y3,outline) Dibuja un tri?ngulo. outline indica si s?lo debe dibujarse el borde (true) o si debe estar relleno (false).

draw_circle(x,y,r,outline) Dibuja un c?rculo con su centro en (x,y) y radio r. outline indica si s?lo debe dibujarse el borde (true) o si debe estar relleno (false).

draw_ellipse(x1,y1,x2,y2,outline) Dibuja una elipse. outline indica si s?lo debe dibujarse el borde (true) o si debe estar rellena (false).

draw_arrow(x1,y1,x2,y2,size) Dibuja una flecha desde (x1,y1) hasta (x2,y2). size indica el tama?o de la flecha en p?xeles.

draw_button(x1,y1,x2,y2,up) Dibuja un bot?n. up indica si est? pulsado (0) o no (1).

draw_path(path,x,y,absolute) Con esta funci?n puedes dibujar el path indicado en el cuarto con su comienzo en la posici?n (x,y). Si absolute es true el path se dibuja en la posici?n en la que fue definido y los valores
de x e y son ignorados.

draw_healthbar(x1,y1,x2,y2,amount,backcol,mincol,maxcol,direction,showback,showborder) Con esta funci?n puedes dibujar una barra de vida (o una barra que indique cualquier otra cosa como poder, magia,?). Los par?metros x1, y1, x2 e y2 indican el ?rea total de la barra. amount indica el porcentaje de la barra que debe estar relleno (debe estar entre 0 y 100). backcol es el color de fondo de la barra. mincol y maxcol indican el color cuando el porcentaje de llenado (par?metro amount) es 0 y 100 respectivamente

draw_set_color(col) Indica el color que debe usarse para dibujar primitivas.

draw_set_alpha(alpha) Indica el factor de transparencia que debe usarse para dibujar primitivas. Debe estar comprendido en el rango 0-1. 0 significa totalmente transparente y 1 totalmente opaco.

draw_get_color() Devuelve el color general de dibujo utilizado para dibujar primitivas.

draw_get_alpha()Devuelve el factor de transparencia general de dibujo utilizado para dibujar primitivas.

c_aqua

c_black

c_blue

c_dkgray

c_fuchsia

c_gray

c_green

c_lime

c_ltgray

c_maroon

c_navy

c_olive

c_purple

c_red

c_silver

c_teal

c_white

c_yellow

make_color_rgb(red,green,blue) Devuelve un color con los componentes indicados de rojo,verde y azul. Los valores indicados deben estar entre 0 y 255 (ambos inclusive).

make_color_hsv(hue,saturation,value) Devuelve un color con los componentes indicados de brillo, saturaci?n y valor. Los valores indicados deben estar entre 0 y 255 (ambos inclusive).

color_get_red(col) Devuelve el componente de rojo del color.

color_get_green(col) Devuelve el componente de verde del color.

color_get_blue(col) Devuelve el componente de azul del color.

color_get_hue(col) Devuelve el componente de brillo del color.

color_get_saturation(col) Devuelve el componente de saturaci?n del color.

color_get_value(col) Devuelve el componente de valor del color.

merge_color(col1,col2,amount) Devuelve un color resultante de mezclar los dos colores indicados. La mezcla se determina por el par?metro amount: un valor igual a 0 corresponde a col1, un valor de 1 corresponde a
col2 y un valor intermedio hace que se mezclen los dos colores

draw_getpixel(x,y) Devuelve el color del p?xel en la posici?n (x,y) del cuarto. Esta funci?n no es muy r?pida, as? que ?sala con cuidado.

screen_save_part(fname,x,y,w,h) Salva la parte de la pantalla indicada a un archive bmp.

draw_set_font(font) Indica la fuente que debe usarse para dibujar texto. Puedes indicar el valor -1 para usar la fuente por defecto (Arial 12).

draw_set_halign(halign) Indica la alineaci?n horizontal del texto.

fa_left izquierda

fa_center centrada

fa_right derecha

draw_set_valign(valign) Indica la alineaci?n vertical del texto.

fa_top arriba

fa_middle centrada

fa_bottom abajo

string_width(string) Anchura que el texto indicado ocupar?a si se dibujara con la fuente actual usando la funci?n draw_text(). Puedes usar esta funci?n para posicionar los gr?ficos con precisi?n.

string_height(string) Altura que el texto indicado ocupar?a si se dibujara con la fuente actual usando la funci?n draw_text(). Puedes usar esta funci?n para posicionar los gr?ficos con precisi?n.

string_width_ext(string,sep,w) Anchura que el texto indicado ocupar?a si se dibujara con la fuente actual usando la funci?n draw_text_ext(). Puedes usar esta funci?n para posicionar los gr?ficos con precisi?n.

string_height_ext(string,sep,w) Altura que el texto indicado ocupar?a si se dibujara con la fuente actual usando la funci?n draw_text_ext(). Puedes usar esta funci?n para posicionar los gr?ficos con precisi?n.

draw_text_ext_transformed(x,y,string,sep,w,xscale,yscale,angle) Combina las funciones draw_text_ext() y draw_text_transformed(). De esta forma es posible dibujar textos multil?neas rotados o escalados.

draw_text_color(x,y,string,c1,c2,c3,c4,alpha) Dibuja el texto indicado aplicando a cada esquina el color indicado en el orden arriba-izquierda, arriba-derecha, abajo-derecha, abajo-izquierda y con factor de
transparencia alpha (0-1).

draw_text_ext_color(x,y,string,sep,w,c1,c2,c3,c4,alpha) Similar a draw_text_ext() pero con v?rtices coloreados.

draw_text_ext_transformed_color(x,y,string,sep,w,xscale,yscale,angle,c1,c2,c3,c4,alpha) Similar a draw_text_ext_transformed()pero con v?rtices coloreados.

draw_point_color(x,y,col1) Dibuja un punto en la posici?n (x,y) con el color indicado.

draw_line_color(x1,y1,x2,y2,col1,col2) Dibuja una l?nea desde (x1,y1) hasta (x2,y2), interpolando el color entre col1 y col2.

draw_rectangle_color(x1,y1,x2,y2,col1,col2,col3,col4,outline) Dibuja un rect?ngulo. Los cuatro colores indican los colores de los v?rtices. outline indica si s?lo debe dibujarse el contorno del rect?ngulo (true) o si debe
estar relleno (false).

draw_roundrect_color(x1,y1,x2,y2,col1,col2,outline) Dibuja un rect?ngulo redondeado. col1 es el color en el centro del rect?ngulo y col2 en el borde. outline indica si s?lo debe dibujarse el contorno del rect?ngulo o si
debe estar relleno.

draw_triangle_color(x1,y1,x2,y2,x3,y3,col1,col2,col3,outline) Dibuja un tri?ngulo. Los tres colores son los de los v?rtices del tri?ngulo. outline indica si s?lo debe dibujarse el contorno del tri?ngulo o si debe estar
relleno.

draw_circle_color(x,y,r,col1,col2,outline) Dibuja un c?rculo en (x,y) con radio r. col1 es el color en el centro y col2 en el borde. outline indica si s?lo debe dibujarse el contorno del c?rculo (true) o si ?ste debe estar
relleno (false).

draw_ellipse_color(x1,y1,x2,y2,col1,col2,outline) Dibuja una elipse. col1 es el color en el centro y col2 en el borde. outline indica si s?lo debe dibujarse el contorno de la elipse (true) o si ?ste debe estar rellena
(false).

pr_pointlist Los v?rtices son un grupo de puntos.

pr_linelist Los v?rtices son un grupo de l?neas. Cada pareja de puntos forma una l?nea, por lo que debe haber un n?mero par de puntos.

pr_linestrip Los v?rtices forman una poli-l?nea de forma que el primer punto se conecta al segundo, el segundo al tercero, etc...El ?ltimo punto no se conecta al primero.

pr_trianglelist Los v?rtices son un grupo de tri?ngulos. Cada triada de puntos forma un tri?ngulo, luego el n?mero de puntos debe ser un m?ltiplo de 3.

pr_trianglestrip Los v?rtices son un grupo de tri?ngulos, pero esta vez de forma distinta. Los tres primeros puntos forman el primer tri?ngulo. Los dos ?ltimos puntos de este tri?ngulo junto con el siguiente punto
forman el segundo tri?ngulo...

pr_trianglefan Similar a la funci?n anterior, pero esta vez el primer punto forma parte de todos los tri?ngulos. Cada nuevo punto especifica un nuevo tri?ngulo formado tambi?n por el punto anterior y por el primer punto.

draw_primitive_begin(kind) Comenzar a definir una primitiva del tipo indicado.

draw_vertex(x,y) A?ade el v?rtice (x,y) a la primitiva, usando los valores generales de dibujo de color y transparencia.

draw_vertex_color(x,y,col,alpha) A?ade el v?rtice (x,y) a la primitiva, con los valores de color y transparencia especificados. De esta forma puedes crear primitivas que cambian gradualmente de color u opacidad.

draw_primitive_end() Terminar la definici?n de la primitiva. En este momento es cuando se dibuja la primitiva.

sprite_get_texture(spr,subimg) Devuelve la id de la textura correspondiente a la subimagen subimg del sprite indicado.

background_get_texture(back) Devuelve la id de la textura correspondiente al fondo indicado.

texture_preload(texid) Carga la textura en la memoria de video inmediatamente.

texture_set_priority(texid,prio) Cuando no hay memoria gr?fica suficiente algunas texturas se eliminar?n temporalmente para hacer sitio a otras que se necesiten. Las texturas con menor prioridad se eliminar?n
primero.

texture_get_width(texid) Devuelve la anchura de la textura con la id especificada. Esta anchura ser? un valor comprendido entre 0 y 1.

texture_get_height(texid) Devuelve la altura de la textura con la id especificada. Esta altura ser? un valor comprendido entre 0 y 1.

draw_primitive_begin_texture(kind,texid) Comienza la definici?n de una primitiva del tipo indicado con la textura indicada.

draw_vertex_texture(x,y,xtex,ytex) A?ade el v?rtice (x,y) a la primitiva con la posici?n (xtex,ytex) en la textura, usando los valores generales de dibujo de color y transparencia. xtex e ytex deben estar comprendidos
entre 0 y 1.

draw_vertex_texture_color(x,y,xtex,ytex,col,alpha) A?ade el v?rtice (x,y) a la primitiva con la posici?n (xtex,ytex) en la textura, usando le color de te?ido y transparencia indicados.

draw_primitive_end() Termina la descripci?n de la primitiva, dibuj?ndola

texture_set_interpolation(linear) Indica si debe usarse interpolaci?n lineal (true) o utilizar el p?xel m?s cercano (false). La interpolaci?n lineal consigue texturas m?s suaves, pero pueden parecer borrosas o hacer que
el juego se ralentice.

texture_set_blending(blend) Indica si debe usarse blending para el color y la transparencia. Blending es la capacidad para que se mezclen. Esta propiedad tambi?n afecta a la forma en que se dibujan los sprites y
fondos.

texture_set_repeat(repeat) Indica si se permite que la textura se repita. Si se especifica un valor mayor que 1, el resto no se dibuja. Sin embargo, si ponemos esta propiedad a true la textura se repetir? hasta llenar la
primitiva por completo.

draw_set_blend_mode(mode) Indica el modo de mezcla a usar de entre los siguientes: bm_normal, bm_add (suma), bm_subtract (resta), y bm_max (m?ximo). No olvides volver a poner el modo normal cuando termines lo que est?s haciendo.

draw_set_blend_mode_ext(src,dest) Indica el modo de mezcla que se debe usar para la fuente y el destino. El color resultante se calcula aplicando a cada color (fuente y destino) un factor diferente

bm_zero: El factor de mezcla es (0, 0, 0, 0).

bm_one: El factor de mezcla es (1, 1, 1, 1).

bm_src_color: El factor de mezcla es (Rf, Gf, Bf, Af).

bm_inv_src_color: El factor de mezcla es (1?Rf, 1?Gf, 1?Bf, 1?Af).

bm_src_alpha: El factor de mezcla es (Af, Af, Af, Af).

bm_inv_src_alpha: El factor de mezcla es (1?Af, 1?Af, 1?Af, 1?Af).

bm_dest_alpha: El factor de mezcla es (Ad, Ad, Ad, Ad).

bm_inv_dest_alpha: El factor de mezcla es (1?Ad, 1?Ad, 1?Ad, 1?Ad).

bm_dest_color: El factor de mezcla es (Rd, Gd, Bd, Ad).

bm_inv_dest_color: El factor de mezcla es (1?Rd, 1?Gd, 1?Bd, 1?Ad).

bm_src_alpha_sat: El factor de mezcla es (f, f, f, 1); f = min(Af, 1?Ad).

surface_create(w,h) Crea una superficie con la anchura y altura indicadas. La funci?n devuelve la id de la superficie que debe ser usada en las dem?s funciones.

surface_free(id) Libera la memoria utilizada por la superficie.

surface_exists(id) Devuelve si la superficie con la id especificada existe

screen_redraw() Redibuja la pantalla ejecutando todos los eventos de dibujo.

screen_refresh() Refresca la pantalla usando la imagen del cuarto actual sin ejecutar los eventos de dibujo.

set_automatic_draw(value) Indica si el cuarto se debe dibujar autom?ticamente (true por defecto) o no (false).

set_synchronization(value) Indica si se debe sincronizar el dibujo con la frecuencia de refresco del monitor.

screen_wait_vsync() Espera hasta la siguiente sincronizaci?n vertical del monitor.




sound_play(index) Reproduce el sonido indicado una vez. Si el sonido es m?sica de fondo, la actual es parada.

sound_loop(index) Reproduce el sonido indicado, rebobin?ndolo continuamente. Si el sonido es m?sica de fondo, la actual es parada.

sound_stop(index) Para el sonido indicado. Si hay varios sonidos con este ?ndice reproduci?ndose simult?neamente, todos son parados.

sound_stop_all() Para todos los sonidos.

sound_isplaying(index) Devuelve si (una copia de) el sonido indicado se esta reproduciendo

sound_volume(index,value) Cambia el volumen del sonido indicado (0 = bajo, 1 = alto,)

sound_global_volume(value) Cambia el volumen global de todos los sonidos (0=bajo, 1=alto)

sound_fade(index,value,time) Cambia el volumen del sonido indicado a el nuevo value (0=bajo, 1=alto) durante el tiempo indicado (en milisegundos). Esto puede ser usado para ascender o descender el sonido (p.e.
para entradas).

sound_pan(index,value) Cambia el pan del sonido indicado (-1=izquierda, 0,centro, 1=derecha).

sound_background_tempo(factor) Cambia el tempo de la m?sica (si es midi). factor indica el factor a multiplicar por el tempo. 1 es el tempo normal. Valores mayores corresponden a un tempo m?s r?pido. Debe
oscilar entre 0.01 y 100.

sound_set_search_directory(dir) Establece el directorio en donde se deben buscar archivos

direct music. El string DIR no debe incluir la diagonal al final.

sound_effect_set(snd,effect) Establece una (combinaci?n de) efecto(s) de sonido para el sonido indicado

se_none

se_chorus

se_echo

se_flanger

se_gargle

se_reverb

se_compressor

se_equalizer

sound_effect_chorus(snd,wetdry,depth,feedback,frequency,wave,delay,phase) Establece los par?metros para el efecto de chorus al sonido indicado.

sound_effect_echo(snd,wetdry,feedback,leftdelay,rightdelay,pandelay) Establece los par?metros para el efecto de echo al sonido indicado.

sound_effect_flanger(snd,wetdry,depth,feedback,frequency,wave,delay,phase) Establece los par?metros para el efecto de flanger al sonido indicado.

sound_effect_gargle(snd,rate,wave) Establece los par?metros para el efecto de gargle al sonido indicado.

sound_effect_reverb(snd,gain,mix,time,ratio) Establece los par?metros para el efecto de reverb al sonido indicado.

sound_effect_compressor(snd,gain,attack,release,threshold,ratio,delay) Establece los par?metros para el efecto de compressor al sonido indicado.

sound_effect_equalizer(snd,center,bandwidth,gain) Establece los par?metros para el efecto de equalizer al sonido indicado.

sound_3d_set_sound_position(snd,x,y,z) Establece la posici?n al sonido indicado con respecto a la posici?n del oyente en el espacio.

sound_3d_set_sound_velocity(snd,x,y,z) Establece la velocidad al sonido indicado con el vector indicado en el espacio.

sound_3d_set_sound_distance(snd,mindist,maxdist) Establece la distancia m?nima a la cual el sonido est? en su m?xima amplitud, y la distancia m?xima a la cual el sonido ya no se debe oir.

sound_3d_set_sound_cone(snd,x,y,z,anglein,angleout,voloutside) Normalmente el sonido tiene la misma amplitud, a una distancia dada, en todas las direcciones.

cd_init() Debe llamarse antes de usar las otras funciones, as? como cuando se cambia un CD (o simplemente de tiempo a tiempo).

cd_present() Devuelve si hay un cd en el dispositivo CD predeterminado.
cd_number() Devuelve el numero de pistas en el CD.

cd_playing() Devuelve si el CD se est? reproduciendo.

cd_paused() Devuelve si el CD esta pausado o parado.

cd_track() Devuelve el n?mero de la pista que se est? reproduciendo (1=la primera)
cd_length() Devuelve la longitud total del CD en milisegundos.

cd_track_length(n) Devuelve la longitud de una pista n del CD en milisegundos

cd_position() Devuelve la posici?n actual en el CD en milisegundos.

cd_track_position() Devuelve la posici?n actual de la pista reproducida, en milisegundos.
cd_play(first,last) Le indica al CD desde que pista a que pista debe reproducir. Si deseas que reproduzca todo el CD, indica 1 y 1000 como argumentos.

cd_stop()Deja de reproducir.

cd_pause().Pausa la reproducci?n.

cd_resume().Continua la reproducci?n.

cd_set_position(pos). Establece la posici?n en el CD, en milisegundos.

cd_set_track_position(pos). Establece la posici?n de la pista actual en milisegundos.

cd_open_door()Abre la caja del Reproductor de CDs.

cd_close_door()Cierra la caja del Reproductor de CDs.
MCI_command(str) Esta funci?n env?a el comando al sistema multimedia de Windows usando el Media Control Interface (MCI, Interfaz de Control de Medios). Devuelve la cadena de texto de resultado.
177
Código (Parte 2) [Seleccionar]
sleep(numb) Pausa el juego durante numb milisegundos.

alarm[0..11] Valor de la alarma indicada. (Nota: ?las alarmas solo se actualizan cuando el evento de alarma para el objeto contiene acciones!)

timeline_index ?ndice de la time line asociada con la instancia. Puedes establecerlo a una time line en particular para usarla. Ponlo en ?1 para dejar de usar la time line para la instancia.

timeline_position Posici?n actual dentro de la time line. Puedes cambiarla para saltar o repetir ciertas partes.

timeline_speed Normalmente, en cada step la posici?n en la time line se incrementa en 1. Puedes cambiar esta cantidad configurando esta variable a un valor diferente. Puedes usar n?meros reales, por ejemplo 0.5. Si el valor es mayor que uno, varios momentos pueden ocurrir dentro del mismo tiempo del step. Se realizar?n en el orden correcto, por lo que no se saltar? ninguna acci?n.

room ?ndice del cuarto actual; puede cambiarse para ir a un cuarto diferente, pero mejor usa las rutinas listadas abajo.

room_first* ?ndice del primer cuarto en el juego.

room_last* ?ndice del ultimo cuarto en el juego.

room_restart() Reiniciar el cuarto actual.

room_previous(numb)Devuelve el ?ndice del cuarto anterior a numb (-1 = ninguno) pero no va a ?l.

room_next(numb) Devuelve el ?ndice del cuarto posterior a numb (-1 =ninguno).

game_end() Finaliza el juego.

game_restart() Reinicia el juego.

Los niveles ("cuartos/rooms") tienen varias propiedades adicionales:

room_width* Ancho del cuarto en p?xeles.

room_height* Alto del cuarto en p?xeles.

room_caption T?tulo de la ventana del cuarto.

room_persistent Indica si el cuarto es persistente.

game_save(string) Guarda el juego al archivo con nombre string.

game_load(string) Carga el juego del archivo con nombre string.

score El marcador actual.

lives El n?mero de vidas.

show_score Indica si se muestra el marcador en el t?tulo de la ventana.

show_lives Indica si se muestra el n?mero de vidas en el t?tulo de la ventana.

show_health Indica si se muestra la energ?a en el t?tulo de la ventana.

caption_score El t?tulo empleado para el marcador.

caption_lives El t?tulo empleado para el n?mero de vidas.

caption_health El t?tulo para la energ?a.

event_perform(type,numb) Realiza el evento numb del tipo type para la instancia actual

event_perform_object(obj,type,numb) Esta funci?n funciona igual que la anterior pero esta vez puedes especificar eventos en otro
objeto.

error_last Cadena de texto que indica el ?ltimo mensaje de error

show_debug_message(str) Muestra la cadena str en modo debug

variable_global_exists(name) Devuelve si la variable global con el nombre especificado existe.

variable_local_exists(name) Devuelve si la variable local con el nombre especificado existe para la instancia actual.

variable_global_get(name) Devuelve el valor de la variable global indicada.

variable_global_array_get(name,ind) Devuelve el valor de ?ndice ind del array global con el nombre indicado.

variable_global_array2_get(name,ind1,ind2) Devuelve el valor de ?ndice ind1, ind2 del array bidimensional global con el nombre indicado.

variable_local_get(name) Devuelve el valor de la variable local indicada para la instancia actual.

variable_local_array_get(name,ind) Devuelve el valor de ?ndice ind del array locall con el nombre indicado.

variable_local_array2_get(name,ind1,ind2) Devuelve el valor de ?ndice ind1, ind2 del array bidimensional global con el nombre indicado.

variable_global_set(name,value) Otorga el valor indicado a la variable global especificada.

variable_global_array_set(name,ind,value) Otorga el valor indicado al elemento ind del array global especificado.

variable_global_array2_set(name,ind1,ind2,value) Otorga el valor indicado al elemento ind 1, ind2 del array bidimensional global especificado.

variable_local_set(name,value) Otorga el valor indicado a la variable local especificada.

variable_local_array_set(name,ind,value) Otorga el valor indicado al elemento ind del array local especificado.

variable_local_array2_set(name,ind1,ind2,value) Otorga el valor indicado al elemento ind 1, ind2 del array bidimensional local especificado.

set_program_priority(priority) Cambia la prioridad del programa. Debes indicar un valor comprendido entre -3 y +3. Usando -3 el programa se ejecutar? s?lo si no hay otro proceso que requiera tiempo de computaci?n. -2 y -1 son valores por debajo de lo normal, as? que otros procesos tendr?n prioridad sobre el juego. 0 es el valor normal. +1 y +2 son valores de alta prioridad.

keyboard_lastkey C?digo de la ?ltima tecla presionada. Mira m?s las constantes para los c?digos de tecla. Puedes cambiarlo, p. ej, ponerlo a 0 si tu lo manipulaste. keyboard_key C?digo de tecla de la tecla presionada actualmente (mira mas abajo; 0 si no se presiona ninguna)

keyboard_lastchar ?ltimo car?cter presionado (como string)

keyboard_string Cadena de caracteres de los ?ltimos 1024 caracteres tipeados. Esta cadena solo contendr? caracteres imprimibles en la pantalla. Tambi?n responde a la tecla de retroceso borrando el ?ltimo car?cter.

keyboard_set_map(key1,key2) Mapea la tecla con el c?digo de tecla key 1 a key2.

keyboard_get_map(key) Devuelve el mapeado actual para una tecla

keyboard_unset_map() Restablece todas sus teclas a su mapa original.

keyboard_check(key) Indica si la tecla con el c?digo de tecla particular est? presionado.

keyboard_check_pressed(key) Indica si la tecla con el c?digo de tecla particular fue presionado desde el ?ltimo step.

keyboard_check_released(key) Indica si la tecla con el c?digo de tecla particular dej? de presionarse desde el ?ltimo step.

keyboard_check_direct(key) Indica si la tecla con el c?digo de tecla es presionada chequeando el hardware directamente. El resultado es independiente de la aplicaci?n enfocada. Esta funci?n permite algunos chequeos m?s. En este caso puedes emplear los c?digos vk_lshift, vk_lcontrol, vk_lalt, vk_rshift, vk_rcontrol y vk_ralt para checar si se presiona la tecla shift, control o alt, ya sea izquierda o derecha.

keyboard_get_numlock()Indica si BloqNum est? activada. keyboard_set_numlock(on) Activa (on=true) o desactiva (on=false) BloqNum.

keyboard_key_press(key) Simula presionar la tecla con el c?digo de tecla.

keyboard_key_release(key) Simulates a release of the key with the indicated keycode.

vk_nokey C?digo de tecla que representa que no hay teclas presionadas.

vk_anykey C?digo de tecla que representa que cualquier tecla ha sido presionada.

vk_left C?digo para tecla de la flecha izquierda.

vk_right C?digo para tecla de la flecha derecha.

vk_up C?digo para tecla de la flecha arriba.

vk_down C?digo para tecla de la flecha abajo.

vk_enter Tecla Enter o Intro.

vk_escape Tecla Escape.

vk_space Tecla Espacio.

vk_shift Tecla Shift.

vk_control Tecla Control.

vk_alt Tecla Alt.

vk_backspace Tecla Backspace o Retroceso.

vk_tab Tecla Tab.

vk_home Tecla Inicio.

vk_end Tecla Fin.

vk_delete Tecla Suprimir.

vk_insert Tecla Insertar.

vk_pageup Tecla Re Pag.

vk_pagedown Tecla Av Pag.

vk_pause Tecla Pausa/Inter.

vk_printscreen Tecla Impr Pant/Pet Sis.

vk_f1 ... vk_f12 C?digos de tecla para las las teclas funcionales F1 hasta F12.

vk_numpad0 ... vk_numpad9 Teclas num?ricas en el teclado num?rico.

vk_multiply Tecla de multiplicaci?n en el teclado num?rico.

vk_divide Tecla de divisi?n en el teclado num?rico.

vk_add Tecla de suma en el teclado num?rico.

vk_subtract Tecla de substracci?n en el teclado num?rico.

vk_decimal Tecla de punto decimal en el teclado num?rico.

vk_lshift Tecla Shift de la Izquierda.

vk_lcontrol Tecla Control de la Izquierda.

vk_lalt Tecla Alt de la Izquierda.

vk_rshift Tecla Shift de la Derecha.

vk_rcontrol Tecla Control de la Derecha.

vk_ralt Tecla Alt de la Derecha.

keyboard_clear(key) ?Limpia? el estado de la tecla mencionada en ?key?. Esto significa que no generar? eventos de teclado hasta que se vuelva a presionar.

io_clear() ?Limpia? todos los estados del teclado y del rat?n.

io_handle() Maneja la entrada y salida por parte del usuario, actualizando los estados del teclado y del rat?n.
keyboard_wait() Espera hasta que el usuario presione una tecla del teclado.

mouse_x* Coordenada X del rat?n. No puede cambiarse.

mouse_y* Coordenada Y del rat?n. No puede cambiarse.

mouse_button Bot?n del rat?n presionado actualmente. Como valores puedes emplear mb_none (ning?n bot?n), mb_any (cualquier bot?n), mb_left (bot?n izquierdo), mb_middle (bot?n central) o mb_right (bot?n derecho).

mouse_lastbutton ?ltimo bot?n presionado del rat?n.

mouse_check_button(numb) Indica si se presiona el bot?n del rat?n numb (como valores de numb emplea mb_none, mb_left, mb_middle, o mb_right).

mouse_check_button_pressed(numb) Indica si el bot?n del rat?n fue presionado desde el ultimo step.

mouse_check_button_released(numb) Indica si el bot?n del rat?n se solt? desde el ?ltimo step.

mouse_clear(button) ?limpia? el estado del bot?n del Mouse. Esto significa que no se generar?n mas eventos del rat?n hasta que se vuelva a presionar otra vez. io_clear() ?Limpia? todos los estados del teclado y del rat?n.

io_handle() Maneja la entrada y salida por parte del usuario, actualizando los estados del teclado y del rat?n.

mouse_wait() Espera hasta que el usuario presione un bot?n en el rat?n.

joystick_exists(id) Indica si el joystick id (1 o 2) existe.

joystick_name(id) Devuelve el nombre del joystick.

joystick_axes(id) Devuelve el n?mero de ejes del joystick.

joystick_buttons(id) Devuelve el n?mero de botones del joystick.

joystick_has_pov(id) Indica si el joystick tiene capacidades point-of-view.

joystick_direction(id) Devuelve el c?digo (vk_numpad1 a vk_numpad9) correspondiente a la direcci?n del joystick id (1 o 2).

joystick_check_button(id,numb) Indica si el bot?n del joystick id es presionado (numb est? en el intervalo 1-32).

joystick_xpos(id) Devuelve la posici?n (-1 a 1) del eje-x del joystick id.

joystick_ypos(id) Devuelve la posici?n y del joystick id.

joystick_zpos(id) Devuelve la posici?n z del joystick id (si es que cuenta con eje z).

joystick_rpos(id) Devuelve la posici?n del tim?n del joystick id (del cuarto eje).

joystick_upos(id) Devuelve la posici?n u del joystick id (del quinto eje).

joystick_vpos(id) Devuelve la posici?n v del joystick id (del sexto eje).

joystick_pov(id) Devuelve la posici?n del point-of-view del joystick id. Este es un ?ngulo entre 0 y 360 grados. 0 es adelante, 90 a la derecha, 180 atr?s y 270 a la izquierda. Cuando no se especifica la direcci?n del "point-of-view" devuelve ?1.
178
Saludos comunidad.

Este es el listado completo de funciones y sentencias de :GM6: que hace algun tiempo redactamos entre toda la comunidad.

En esta ocasion, por peticion de la propia comunidad, se ha tomado la decision de ampliar este glosario a?adiendo nueva informacion, ejemplos y corrigiendo los gazapos que se nos escaparon en su dia.

Dada la enorme extension del listado, dependemos integramente de la ayuda desinteresada de los miembros de la comunidad. Si te estas preguntando como podrias ayudar, solo debes de estar atento a los siguientes parrafos.

Debajo de esta introduccion, veras citado un listado enorme de funciones. La mayoria estan comentadas en castellano, pero queremos mejorar la informacion disponible. Tras un peque?o debate en esta misma seccion, hemos decidido que las colaboraciones deben adoptar la plantilla que planteo Pucara:

Cita de: PlantillaFunci?n / Sentencia:
Sint?xis:
Exp. Argumentos [Si procede]:
Uso:
Ejemplo 1 [Si procede]:
Ejemplo 2 [opcional]:
Funciones relacionadas:

Para a?adir una colaboracion, no tienes mas que responder en este tema a?adiendo la descripcion (conforme a esta plantilla) de la funcion, constante o sentencia que hayas elegido del listado. Los responsables del proyecto se encargaran de revisarla y a?adirla a un listado definitivo mientras tachan o borran la funcion del listado que aparece en este tema, que hara las veces de pila de trabajo.

Los responsables del proyecto son:

CitarPucara

Dieguin451

Gabriel Moreno

A continuacion, os dejo con el listado:

Código (Parte 1) [Seleccionar]




frac(x) Devuelve la parte fraccional de X, que es la parte situada tras el punto decimal.

sqrt(x) Devuelve la ra?z cuadrada de X. El valor no debe ser negativo.

sqr(x) Devuelve el cuadrado de X.

exp(x) Devuelve E elevado a X.

ln(x) Devuelve el logaritmo neperiano (natural) de X.

log2(x) Devuelve el logaritmo en base 2 de X.

log10(x) Devuelve el logaritmo en base 10 de X.

logn(n,x) Devuelve el logaritmo en base N de X.

sin(x) Devuelve el seno de X (X en radianes).

cos(x) Devuelve el coseno de X (X en radianes).

tan(x) Devuelve la tangente de X (X en radianes).

[s]arcsin(x) Devuelve el arcoseno de X[/s].

[s]arccos(x) Devuelve el arcocoseno de X.[/s]

arctan(x) Devuelve la arcotangente de X.

arctan2(y,x) Calcula la arcotangente de (Y/X), y devuelve un ?ngulo en el cuadrante correcto.

degtorad(x) Convierte grados a radianes.

radtodeg(x) Convierte radianes a grados.

min(val1,val2,val3,...) Devuelve el menor de los valores. La funci?n soporta 16 argumentos.

max(val1,val2,val3,...) Devuelve el mayor de los valores. La funci?n soporta 16 argumentos.

mean(val1,val2,val3,...) Devuelve el promedio de los valores. La funci?n soporta 16 argumentos. Deben ser todos n?meros reales.

median(val1,val2,val3,...) Devuelve el valor intermedio de los argumentos introducidos.

point_direction(x1,y1,x2,y2) Devuelve la direcci?n desde el punto (x1,y1) hacia el punto (x2,y2) en grados.

lengthdir_x(len,dir) Devuelve la componente horizontal (x) del vector determinado por la longitud y direcci?n indicadas.

lengthdir_y(len,dir) Devuelve la componente vertical (y) del vector determinado por la longitud y direcci?n indicadas.

is_real(x) Averigua cuando X es un valor real. (diferenci?ndolo de una cadena de texto).

is_string(x) Averigua cuando X es una cadena de texto. (diferenci?ndolo de un n?mero real).

chr(val) Devuelve una cadena con el car?cter al que hace referencia el c?digo asci VAL.

ord(str) Devuelve el c?digo asci del primer car?cter de la cadena de texto STR.

real(str) Convierte una cadena de texto en un n?mero real. STR puede contener signos negativos, puntos decimales o una parte exponencial.

string(val) Convierte el n?mero real en una cadena de texto utilizando el formato est?ndar

string_format(val,tot,dec) Convierte VAL en una cadena de texto utilizando nuestro propio formato: TOT indica el m?ximo de d?gitos y DEC el n?mero de d?gitos decimales.

string_pos(substr,str) Devuelve la posici?n de SUBSTR en STR (0 No encontrado).

string_copy(str,index,count) Devuelve una subcadena de STR, partiendo de la posici?n INDEX y de una longitud definida por COUNT.

string_char_at(str,index) Devuelve el car?cter situado en la posici?n INDEX de la cadena STR.

string_delete(str,index,count) Devuelve una copia de la cadena STR con una parte borrada, que empieza en INDEX y de una longitud definida por COUNT.

string_insert(substr,str,index) Devuelve una copia de la cadena STR con la subcadena SUBSTR a?adida en la posici?n INDEX.

string_replace(str,substr,newstr) Devuelve una copia de STR con la primera ocurrencia de SUBSTR reemplazada por NEWSTR.

string_replace_all(str,substr,newstr) Devuelve una copia de STR con todas las ocurrencias encontradas de SUBSTR reemplazadas por la subcadena NEWSTR.

string_count(substr,str) Devuelve el n?mero de ocurrencias de la subcadena SUBSTR existentes en STR.

string_lower(str) Devuelve una copia en min?sculas de la cadena STR.

string_upper(str) Devuelve una copia en may?sculas de la cadena STR.

string_repeat(str,count) Devuelve una cadena con un n?mero de copias de la cadena STR definido por COUNT.

string_letters(str) Devuelve una cadena de texto que solo contiene las letras de la cadena STR.

string_digits(str) Devuelve una cadena que solo contiene los n?meros de la cadena STR.

string_lettersdigits(str) Devuelve una cadena que solo contiene los n?meros y las letras de la cadena STR.

date_current_datetime()Devuelve fecha y hora actual.

date_current_date()Devuelve fecha actual ignorando la hora.

date_current_time()Devuelve hora actual ignorando la fecha.

date_create_datetime(year,month,day,hour,minute,second) Crea un valor fecha-hora correspondiente a la fecha y hora indicados.

date_create_date(year,month,day) Crea un valor fecha-hora correspondiente a la fecha indicada.

date_create_time(hour,minute,second) Crea un valor fecha-hora correspondiente a la hora indicada.

date_valid_datetime(year,month,day,hour,minute,second) Muestra si la hora y fecha indicados son v?lidos.

date_valid_date(year,month,day) Muestra si la fecha indicada es v?lida.

date_valid_time(hour,minute,second) Muestra si la hora indicada es v?lida.

date_inc_year(date,amount) Devuelve una nueva fecha N a?os despu?s de la fecha indicada. N debe ser un n?mero entero.

date_inc_month(date,amount) Devuelve una nueva fecha N meses despu?s de la fecha indicada. N debe ser un n?mero entero.

date_inc_week(date,amount) Devuelve una nueva fecha N semanas despu?s de la fecha indicada. N debe ser un n?mero entero.

date_inc_day(date,amount) Devuelve una nueva fecha N d?as despu?s de la fecha indicada. N debe ser un n?mero entero.

date_inc_hour(date,amount) Devuelve una nueva fecha N horas despu?s de la fecha indicada. N debe ser un n?mero entero.

date_inc_minute(date,amount) Devuelve una nueva fecha N minutos despu?s de la fecha indicada. N debe ser un n?mero entero.

date_inc_second(date,amount) Devuelve una nueva fecha N segundos despu?s de la fecha indicada. N debe ser un n?mero entero.

date_get_year(date) Devuelve el a?o actual.

date_get_month(date) Devuelve el mes actual.

date_get_week(date) Devuelve la semana actual.

date_get_day(date) Devuelve el d?a actual.

date_get_hour(date) Devuelve la hora actual.

date_get_minute(date) Devuelve el minuto actual.

date_get_second(date) Devuelve el segundo actual.

date_get_weekday(date) Devuelve el d?a de la semana actual.

date_get_day_of_year(date) Devuelve el d?a del a?o especificado.

date_get_hour_of_year(date) Devuelve la hora del a?o especificado.

date_get_minute_of_year(date) Devuelve el minuto del a?o especificado.

date_get_second_of_year(date) Devuelve el segundo del a?o especificado.

date_year_span(date1,date2) Devuelve el n?mero de a?os que hay entre las dos fechas. Reporta los a?os incompletos como una fracci?n.

date_month_span(date1,date2) Devuelve el n?mero de meses que hay entre las dos fechas. Reporta los meses incompletos como una fracci?n.

date_week_span(date1,date2) Devuelve el n?mero de semanas que hay entre las dos fechas. Reporta las semanas incompletas como una fracci?n.

date_day_span(date1,date2) Devuelve el n?mero de d?as que hay entre las dos fechas. Reporta los d?as incompletos como una fracci?n.

date_hour_span(date1,date2) Devuelve el n?mero de horas que hay entre las dos fechas. Reporta las horas incompletas como una fracci?n.

date_minute_span(date1,date2) Devuelve el n?mero de minutos que hay entre las dos fechas. Reporta los minutos incompletos como una fracci?n.

date_second_span(date1,date2) Devuelve el n?mero de segundos que hay entre las dos fechas. Reporta los segundos incompletos como una fracci?n.

date_compare_datetime(date1,date2) Compara los dos valores fecha-hora. Devuelve -1, 0, ? 1 dependiendo en si la primera fecha es anterior, igual, o posterior que la segunda.

date_compare_date(date1,date2) Compara los dos valores fecha-hora tomando en cuenta s?lo la parte de la fecha. Devuelve -1, 0, ? 1 dependiendo en si la primera es anterior, igual, o posterior que la segunda.

date_compare_time(date1,date2) Compara los dos valores fecha-hora tomando en cuenta s?lo la parte de la hora. Devuelve -1, 0, ? 1 dependiendo en si la primera es anterior, igual, o posterior que la segunda.

date_date_of(date) Devuelve la parte de la fecha del valor fecha-hora indicado, estableciendo la hora a 0.

date_time_of(date) Devuelve la hora del valor fecha-hora indicado, estableciendo la fecha a 0.

date_datetime_string(date) Devuelve una cadena indicando la fecha y hora definidos, en el formato predeterminado para el sistema.

date_date_string(date) Devuelve una cadena indicando la fecha definida en el formato predeterminado para el sistema.

date_time_string(date) Devuelve una cadena indicando la hora definida en el formato predeterminado para el sistema.

date_days_in_month(date) Devuelve el n?mero de d?as que hay en el mes indicado.

date_days_in_year(date) Devuelve el n?mero de d?as que hay en el a?o indicado.

date_leap_year(date) Define si el a?o indicado es un a?o bisiesto.

date_is_today(date) Define si la fecha indicada es la actual.

x Su posici?n x.

y Su posici?n y.

xprevious Su posici?n x anterior.

yprevious Su posici?n y previa.

xstart Su posici?n x inicial en el cuarto.

ystart Su posici?n y inicial en el cuarto.

hspeed Componente horizontal de la velocidad.

vspeed Componente vertical de la velocidad.

direction Su direcci?n actual (0-360, contra las manecillas del reloj, 0 = a la derecha).

speed Su velocidad actual (p?xeles por step).

friction Fricci?n actual (p?xeles por step).

gravity Cantidad actual de gravedad (p?xeles por paso).

gravity_direction Direcci?n de la gravedad (270 es hacia abajo).

motion_set(dir,speed) Establece el movimiento a la velocidad speed y la direcci?n dir.

motion_add(dir,speed) Agrega el movimiento al movimiento actual (como una suma vectorial).

place_free(x,y) Devuelve si la instancia colocada en la posici?n (x, y) est? libre de colisi?n. Normalmente se emplea para revisar antes de mover la instancia a la nueva posici?n.

place_empty(x,y) Devuelve si la instancia colocada en la posici?n (x, y) no se encuentra con nadie. Esta funci?n tambi?n toma en cuenta las instancias no s?lidas.

place_meeting(x,y,obj) Devuelve si la instancia colocada en la posici?n (x,y) se encuentra con un el objeto obj. obj puede ser un objeto en cuyo caso la funci?n devuelve verdadero si se encuentra con una instancia
de ese objeto. Tambi?n puede ser el id de una instancia, o la palabra especial other.

place_snapped(hsnap,vsnap) Devuelve si la instancia est? alineada con los valores de snap hsnap y vsnap.

move_random(hsnap,vsnap) Mueve la instancia a una posici?n libre, y la alinea con los valores hsnap y vsnap, al igual que la acci?n correspondiente.

move_snap(hsnap,vsnap) Alinea la instancia, como la acci?n correspondiente.

move_wrap(hor,vert,margin) Teleporta la instancia cuando sale del room al lado opuesto. hor indica si debe desplazarse horizontalmente y vert indica si debe desplazarse verticalmente. margin indica cu?nto debe salir el origen de la instancia del room para teleportarse (es decir, un margen alrededor del room). Esta funci?n se usa normalmente el evento Outside.

move_towards_point(x,y,sp) Mueve la instancia con velocidad sp hacia el punto (x,y).

move_bounce_solid(adv) Rebotar contra objetos s?lidos, como la acci?n correspondiente. adv indica si se emplea rebote avanzado, que toma en cuenta las paredes inclinadas.

move_bounce_all(adv) Rebotar contra todas las instancias, en lugar de s?lo con las s?lidas.

move_contact_solid(dir,maxdist) Mover la instancia en la direcci?n dir hasta que haya contacto con un objeto s?lido. Si no hay collision en la posici?n actual, la instancia es colocada justo antes de donde ocurre una colisi?n. Si ya hay una colisi?n en la posici?n actual, la instancia no se mueve. Puedes especificar la distancia m?xima a mover la instancia maxdist (emplea un n?mero negativo para indicar distancia arbitraria).

move_contact_all(dir,maxdist) Igual que la funci?n anterior pero esta vez se detiene hasta que haya contacto con cualquier objeto, no solo s?lidos.

move_outside_solid(dir,maxdist) Mueve la instancia en la direcci?n dir hasta que no est? al alcance de un objeto s?lido. Si no hay collision en la posici?n actual, no se mueve la instancia. Puedes especificar la distancia m?xima a mover (usa un valor negativo para indicar una distancia arbitraria).

move_outside_all(dir,maxdist) Igual que la anterior pero se mueve hasta estar fuera de alcance de cualquier objeto, no solo objetos s?lidos.

distance_to_point(x,y) Devuelve la distancia de la caja l?mite de la instancia actual hacia el punto (x,y).

distance_to_object(obj) Devuelve la distancia de la instancia actual a la instancia m?s cercana del objeto obj.

[s]position_empty(x,y) Indica si no hay nada en la posici?n (x,y).[/s]

position_meeting(x,y,obj) Indica si en la posici?n (x,y) hay una instancia obj. obj puede ser un objeto, una id de una instancia, o las palabras clave self, other o all.

path_start(path,speed,endaction,absolute) Comienza un path para la instancia actual. path es el nombre del path que deseas iniciar. speed es la velocidad con la que la instancia debe moverse por el path (una
velocidad negativa indica que la instancia se mover? al rev?s sobre el path). endaction indica que deber?a ocurrir cuando la instancia llegue al final del camino. El argumento absolute debe ser true o false. Cuando es true se usan las coordenadas absolutas del path. Cuando es false el path es relativo a la posici?n actual de la instancia. Para ser m?s precisos, si la velocidad es positiva el punto inicial del path se colocar? en la posici?n actual de la instancia y se seguir? desde ah?.

path_end() Termina el path para la instancia actual.

path_index* ?ndice del path que la instancia sigue. No se puede cambiar directamente, debes utilizar la funci?n path_start(path,speed,endaction,absolute). path_position Posici?n en el path actual. 0 es el principio del
path y 1 es el final. Los valores deben estar entre 0 y 1.

path_positionprevious Posici?n previa en el path. Esto se puede usar en eventos de colisi?n para colocar la instancia en la posici?n anterior antes de una colisi?n.

path_speed Velocidad (en p?xels por paso) con la que la instancia sigue el path. Con una velocidad negativa el path se recorre en sentido inverso.

path_orientation Orientaci?n (antihoraria) en la que se realiza el path. 0 es la orientaci?n normal del path.

path_scale Escala del path. Aum?ntala para hacer el path m?s grande. 1 es el valor normal del path.

path_endaction La acci?n que se debe ejecutar al finalizar el path. Puedes indicar los valores explicados m?s arriba.

mp_linear_step(x,y,stepsize,checkall) Esta funci?n hace que la instancia de un paso hacia la posici?n (x,y). La longitud del paso se indica con el par?metro stepsize. Si la instancia ya ha llegado a esa posici?n no
se mover?. Si checkall es true la instancia se parar? cuando choque con una instancia de cualquier objeto. Si es false, s?lo se parar? al chocar con un objeto s?lido. Esta funci?n no propone un camino alternativo,
simplemente se parar? si encuentra un obst?culo. La funci?n devuelve si se ha alcanzado el destino.

mp_linear_step_object(x,y,stepsize,obj) Igual que la anterior, pero esta vez s?lo se tienen en cuenta las instancias del objeto obj. obj puede ser un objeto o una id de una instancia particular.

mp_potential_step(x,y,stepsize,checkall) Igual que las anteriores, pero en este caso la instancia intentar? esquivar los obst?culos que encuentre. Cuando la instancia se choque con un obst?culo cambiar? su
direcci?n para tratar de esquivar el objeto, movi?ndose alrededor de ?l. Puede que no siempre se consiga llegar a la meta, pero la funci?n siempre intentar? acercar lo m?s posible a la instancia. Devuelve true si se
llega a la meta.

mp_potential_step_object(x,y,stepsize,obj) ) Igual que la anterior, pero esta vez s?lo se tienen en cuenta las instancias del objeto obj. obj puede ser un objeto o una id de una instancia particular.

mp_potential_settings(maxrot,rotstep,ahead,onspot) La funci?n anterior hace su trabajo usando un n?mero de par?metros que pueden ser cambiados con esta funci?n. El m?todo funciona como sigue: primero la instancia intenta moverse en l?nea recta hacia la meta. Para ello, mira un n?mero de pasos adelante para ver si hay alg?n obst?culo. Este n?mero de pasos corresponde al valor ahead (por defecto 3). Reduciendo este valor la instancia comenzar? a cambiar su direcci?n m?s tarde si encuentra un obst?culo. Aument?ndolo cambiar? antes de direcci?n. Si detectamos una colisi?n, la funci?n mira a la derecha y a la izquierda para encontrar un camino libre. Esto se realiza en pasos de tama?o rotstep (por defecto 10). El par?metro maxrot indica cu?nto puede cambiar como m?ximo la direcci?n en un paso.
mp_linear_path(path,xg,yg,stepsize,checkall) Calcula un path en l?nea recta para la instancia desde su posici?n hasta (xg,yg) usando el paso especificado en stepsize. Usa pasos como en la funci?n mp_linear_step(). El path indicado debe existir con anterioridad a la llamada de la funci?n y ser? sobreescrito por el nuevo path (consulta el cap?tulo sobre c?mo crear y destruir paths). La funci?n devuelve si se ha encontrado un path. Si no consigue encontrar un camino, la funci?n devolver? un path hasta la posici?n donde la instancia qued? bloqueada.

mp_linear_path_object(path,xg,yg,stepsize,obj) Igual que la anterior, pero esta vez s?lo se tienen en cuenta las instancias del objeto obj. obj puede ser un objeto o una id de una instancia particular.

mp_potential_path(path,xg,yg,stepsize,factor,checkall) Esta funci?n calcula un camino para instancia desde su posici?n actual y orientaci?n hasta (xg,yg) usando el paso especificado en stepsize e intentando evitar colisionar con los obst?culos. Utiliza pasos potenciales como la funci?n mp_potential_step() y los par?metros se pueden configurar con mp_potential_settings(). El path indicado debe existir con anterioridad a la llamada de la funci?n y ser? sobreescrito por el nuevo path (consulta el cap?tulo sobre c?mo crear y destruir paths). La funci?n devolver? si se ha encontrado un camino.

mp_potential_path_object(path,xg,yg,stepsize,factor,obj) Igual que la anterior, pero esta vez s?lo se tienen en cuenta las instancias del objeto obj. obj puede ser un objeto o una id de una instancia particular.

mp_grid_create(left,top,hcells,vcells,cellwidth,cellheight) Esta funci?n crea la rejilla. Devuelve un ?ndice que debe ser usado en las dem?s funciones. Puedes crear y mantener varias rejillas al mismo tiempo. left y top
indican la posici?n de la esquina superior izquierda de la rejilla y hcells y vcells indican el n?mero de celdas horizontales y verticales respectivamente. Finalmente, cellwidth y cellheight indican la anchura y altura de las celdas.mp_grid_destroy(id) Destruye la rejilla indicada y libera la memoria usada. No olvides llamar a esta funci?n cuando no necesites usar m?s la rejilla.

mp_grid_clear_all(id) Marca todas las celdas como libres.

mp_grid_clear_cell(id,h,v) Marca la celda indicada como libre (la primera celda es la 0,0).

mp_grid_clear_rectangle(id,left,top,right,bottom) Marca como libres todas las celdas que intersectan el rect?ngulo definido en coordenadas absolutas del cuarto.

mp_grid_add_cell(id,h,v) Marca ls celdas indicadas como prohibidas.

mp_grid_add_rectangle(id,left,top,right,bottom) Marca todas las celdas que intersectan el rect?ngulo como prohibidas.

mp_grid_add_instances(id,obj,prec) Marca todas las celdas que intersectan una instancia del objeto indicado como prohibidas. Tambi?n puedes especificar una id de una instancia concreta, o la palabra clave all para indicar todas las instancias. prec indica si hay que usar colisi?n precisa (s?lo funcionar? si en el sprite de la instancia est? activada la misma opci?n). p_grid_path(id,path,xstart,ystart,xgoal,ygoal,allowdiag) Calcula el path a trav?s de la rejilla. El path indicado debe existir con anterioridad a la llamada de la funci?n y ser? sobreescrito por el nuevo path (consulta el cap?tulo sobre c?mo crear y destruir paths). xstart e ystart indican el comienzo del path y xgoal e ygoal las coordenadas de la meta. allowdiag indica si se permiten movimientos diagonales entre celdas o no.

mp_grid_draw(id) Esta funci?n dibuja la rejilla marcando las celdas libres y prohibidas (muy ?til para buscar errores).collision_point(x,y,obj,prec,notme) Comprueba si hay una colisi?n en el punto (x,y) con instancias del objeto obj.

collision_rectangle(x1,y1,x2,y2,obj,prec,notme) Comprueba si hay una colisi?n entre el rect?ngulo (s?lido) con las esquinas indicadas e instancias del objeto obj.

collision_circle(xc,yc,radius,obj,prec,notme) Comprueba si hay una colisi?n entre la circunferencia (s?lido) con centro (xc,yc) y radio r e instancias del objeto obj. Puedes usar esta funci?n para ver si un objeto est? cerca de una posici?n.

collision_ellipse(x1,y1,x2,y2,obj,prec,notme) Comprueba si hay una colisi?n entre la elipse (s?lida) con las esquinas indicadas e instancias del objeto obj.

collision_line(x1,y1,x2,y2,obj,prec,notme) Comprueba si hay una colisi?n entre la l?nea que va de (x1,y1) a (x2,y2) e instancias del objeto obj.

object_index* ?ndice del objeto del cual ?sta es una instancia. No se puede cambiar.

id* La id ?nica de la instancia (>= 100000) (Al definir cuartos la id de la instancia bajo el puntero del rat?n es indicada). No se puede cambiar.

mask_index ?ndice de l sprite usado como m?scara para las colisiones. Si indicas -1 la m?scara ser? igual al sprite de la instancia.

solid Indica si la instancia es s?lida o no.

persistent Indica si la instancia es persistente y reaparecer? al moverse a otro cuarto. A veces puedes querer volver a ponerlo a 0 (por ejemplo, al volver al primer cuarto).

instance_count* N?mero de instancias que existen en el cuarto.

instance_id[0..n-1]* La id de la instancia n?mero n.

instance_find(obj,n) Devuelve la id de la instancia n+1 de tipo obj. obj puede ser un objeto o la palabra clave all. Si no existe se devuelve el objeto especial noone. Recuerda que el orden de las instancias cambia en cada step as? que no puedes usar valores de steps anteriores.

instance_exists(obj) Devuelve si existe alguna instancia del objeto obj. obj puede ser un objeto, la id de una instancia o la palabra clave all.

instance_position(x,y,obj) Devuelve la id de la instancia de tipo obj en la posici?n (x,y).
Cuando hay varias instancias en esa posici?n se devuelve la id de la prtimera. obj puede ser un objeto o la palabra clave all. Si no existe se devuelve el objeto especial noone

instance_furthest(x,y,obj) Devuelve la id de la instancia de tipo obj que est? m?s lejana en ese momento a (x,y). obj puede ser un objeto o la palabra clave all.

instance_place(x,y,obj) Devuelve la id de la instancia de tipo obj encontrada cuando la instancia actual se coloca en la posici?n (x,y). obj puede ser un objeto o la palabra clave all. Si no existe se devuelve el objeto
especial noone.

instance_copy(performevent) Crea una copia de la instancia actual. El argumento indica si se debe ejecutar el evento create en la nueva instancia. La funci?n devuelve la id de la nueva copia.

instance_destroy() Destruye la instancia actual.

instance_change(obj,perf) Cambia la instancia a una del tipo obj. perf indica si se deben ejecutar los eventos de destrucci?n y creaci?n.

position_destroy(x,y) Destruye toda las instancias cuyo sprite pasa por el punto (x,y).

position_change(x,y,obj,perf) Cambia todas las instancias en la posici?n indicada a otras del tipo obj. perf indica si se deben ejecutar los eventos de destrucci?n y creaci?n.instance_deactivate_all(notme) Desactiva todas las instancias del cuarto. Si notme es true la instancia actual no es desactivada (normalmente es lo que se desea).

instance_deactivate_object(obj) Desactiva todas las instancias en el cuarto del objeto especificado. Tambi?n puedes indicar all para desactivar todas las instancias o la id de una instancia concreta para desactivarla.

instance_deactivate_region(left,top,width,height,inside,notme) Desactiva todas las instancias en la regi?n indicada (es decir, todas aquellas cuya caja de contorno est? parcial o completamente dentro de la regi?n indicada). Si inside es igual a false las instancias completamente fuera de la regi?n son desactivadas. Si notme es true la instancia actual no es desactivada (normalmente es lo que se desea).

instance_activate_all() Activa todas las instancias del cuarto.

instance_activate_object(obj) Desactiva todas las instancias en el cuarto del objeto especificado. Tambi?n puedes indicar all para desactivar todas las instancias o la id de una instancia concreta para desactivarla.

instance_activate_region(left,top,width,height,inside) Activa las instancias dentro de la regi?n especificada. Si inside es false las instancias fuera de la regi?n son activadas.

room_speed Velocidad del juego en el cuarto actual (en steps por segundo).

fps* N?mero de cuadros que son dibujados por segundo.

current_time* N?mero de milisegundos que han pasado desde que el sistema fue iniciado.

current_year* El a?o actual.

current_month* El mes actual.

current_day* El d?a actual.

current_weekday* El d?a actual de la semana (1=domingo, ?, 7=s?bado).

current_hour* La hora actual.

current_minute* El minuto actual.

current_second* El segundo actual.


?Animo! entre todos podemos generar la base de datos sobre GML mas extensa y util de la red.
179
FAQ: Introduccion a "Game Maker"

Si aun no conoces GM, o llevas muy poco tiempo us?ndolo. Te recomendamos, leas este FAQ que hemos redactado para ponerte al d?a.

Citar
Game Maker, definici?n

Game Maker es una herramienta RAD, basada en un lenguaje de programaci?n interpretado y un paquete de desarrollo de software - SDK - para desarrollar videojuegos, creado por el profesor Mark Overmars, y orientado a usuarios noveles o con pocas nociones de programaci?n. El programa es gratuito, aunque existe una versi?n comercial ampliada con caracter?sticas adicionales.

Tuvo su origen en los a?os 90, cuando Mark Overmars empez? a crear una herramienta de animaci?n para ayudar a sus estudiantes. Con el tiempo su proyecto se convirti? en una herramienta de desarrollo de videojuegos. En 29 de mayo del 2005 sali? la versi?n 6.1.
Game Maker usa su propio lenguaje de programaci?n, el GML (Game Maker Language), con el que se pueden conseguir impresionantes juegos, pues aunque Game Maker est? dise?ado para la creaci?n de juegos en 2 dimensiones, usando el GML se pueden conseguir juegos 3D incre?bles tales como un FPS (First Person Shotter).

El desarrollo de un juego es realmente simple, al basarse en el manejo de:

  • Recursos (gr?ficos, sonidos, fondos, etc.), que se asignan a objetos.
  • Eventos (presionar una tecla, mover el rat?n, etc.), a trav?s de los que se ejecutan comandos.
  • Objetos, sobre los que se act?a en el juego.

Las acciones del juego se pueden programar de dos formas distintas:

  • El interfaz "Drag &amp; Drop" ("arrastrar y soltar"): el programador arrastra unas especies de cajas a una lista, esas "cajas" realizan cierta acci?n. Se gana en facilidad de manejo, a cambio de una menor flexibilidad.
  • El lenguaje GML (Game Maker Language): lenguaje de programaci?n propio de Game Maker, m?s potente, con el que se puede acceder a todas las funciones y posibilidades de Game Maker.

La sintaxis de GML es muy flexible, ya que mezcla elementos de Delphi, C++, y otros lenguajes. As?, el programa trata indistintamente:

  • L?neas terminadas con punto y coma (";") o no.
  • Bloques de c?digo delimitados con begin y end o con llaves ("{" y "}"). Adem?s, se incluyen instrucciones de control de flujo como switch, break, for, etc.

El compilador de Game Maker no compila realmente los ejecutables, sino que une el c?digo a interpretar a su propio int?rprete para formar los ejecutables de los juegos. Por ello, no resulta muy eficiente para grandes proyectos. En versiones recientes se puede compilar el c?digo GML a c?digo m?quina al cargar el juego (Just in Time) justo antes de ejecutar.
En la versi?n 6.1 se utiliza Direct3D para los gr?ficos, lo que los hace m?s r?pidos que en la versi?n 5.3a, que utilizaba DirectDraw. Tambi?n hay soporte para DLLs hechas en C++, Delphi y Pascal, y se pueden crear juegos 3D u online, entre otras funcionalidades.

Enlaces externos



Game Maker, versiones m?s extendidas

Al empezar con GM muchas veces nos entra la duda de cu?l es la mejor versi?n. En este tema se tratar? de responder a esta pregunta.

Primero de todo, hay que dejar claro qu? es lo que uno entiende por "la mejor versi?n". Dependiendo del tipo de juegos que vayamos a crear, la audiencia a la que vayan dirigidos o nuestras propias limitaciones esta definici?n puede variar, por eso se contemplan varios casos:

CitarOrdenador limitado y alta compatibilidad
Si nuestro ordenador es un poco antiguo, si queremos crear juegos que funcionen en el mayor n?mero de sistemas posible o si simplemente no vamos a usar la potencia gr?fica de GM6 o GM7, la mejor opci?n sigue siendo GM5. Esta versi?n necesita pocos requisitos para funcionar y su potencia est? fuera de toda duda. Funciona en pr?cticamente todos los sistemas Windows e incluso en Linux v?a un emulador. Distinguimos dos casos:
1 - GM Registrado: en este caso, la mejor versi?n es GM5.3a.
2 - GM sin registrar: en este caso la mejor es GM5.0, ya que en esta versi?n tenemos m?s funciones disponibles (y m?s importantes) que en cualquier versi?n posterior.




Ordenador actual y gran potencia
Si por contra queremos usar toda la potencia de GM para crear espectaculares efectos visuales, sonido 3D, etc...la mejor versi?n que podemos elegir es GM7 PRO: simplemente es la versi?n m?s potente que existe de GM, la que menos bugs tiene y la que m?s posibilidades ofrece. En este caso no hacemos distinci?n entre la versi?n gratuita y la registrada, ya que si quieres usar la potencia de GM al m?ximo necesitar?s registrarlo. No hagas caso a los que te digan que GM6 es mejor: absolutamente toda la gente que conozco que haya probado el GM7 PRO no ha vuelto a tocar el GM6. Personalmente, he probado todas las versiones de GM desde el GM4 y te puedo asegurar que ninguna supera al GM7 PRO cuando hablamos de potencia.

Links de descarga:

Versiones oficiales
Versiones no oficiales


Herramientas asociadas con GM

Librerias


Lib builder

Se trata de una aplicaci?n para crear librerias. Las librerias son baterias de acciones D&D Poseen codigo en GML encapsulado de tal forma que no es necesario conocer su funcionamiento interno para poder utilizarlo. Basta con arrastrar el icono en cuestion sobre el evento en el que se quiera utilizar, como si de cualquier otra acci?n D&D se tratase.

Links de descarga:


Programacion GML

Dragon Script Resurrection

Aunque GM en todas sus versiones cuenta con un entorno de desarrollo completo, es posible personalizarlo para utilizar aplicaciones externas. Este este es el caso de Dragon Script, un editor de codigo orientado especialmente al lenguaje de Script GML. -Version 6.1-

Links de descarga:


Action Decoder

Debido a su mayor flexibilidad, es muy com?n en los usuarios mas experimentados, que dejen de utilizar paulatinamente el sistema D&D para acomodarse a GML. A menudo esta transici?n resulta algo dificil. Action decoder es una aplicacion dise?ada especialmente para facilitar esta tarea, proporcionando al usuario las equivalencias entre botones D&D y codigo GML. -Version 6.1-

Links de descarga:


Conversor Ejecutables GM6.X - Windows Vista

Con la salida a las calles de Windows Vista, han tomado relieve ciertos errores de compatibilidad con algunas aplicaciones. Si bien GM 7.0 es 100% compatible con esta nueva versi?n de Windows, se han observado errores en algunos juegos creados con GM 6.1. La aplicaci?n de este parche sobre el ejecutable, permite solucionar dichos errores de compatibilidad.

Link de descarga:


Extension Maker

Con la salida de GM 7.0, tambi?n hace aparici?n el concepto de Extension. La extensiones permiten a?adir nuevas funcionalidades a GM, sin tener que recurrir a archivos adjuntos al poder comprimir en un unico paquete DLLs, scripts... que luego van encapsulados en el propio ejecutable.

Links de descarga:


Plugin funciones GML 6.1

El editor de codigo GML incluido con GM, cuenta a su vez, con un asistente que te muestra las funciones cuyos car?cteres coinciden con los terminos introducidos en el editor. En la comunidad hispana de GM, hemos creado este plugin para que dicho asistente tambi?n muestre una breve descripcion en nuestro idioma sobre su sintaxis, utilidad e implementaci?n.

Link de descarga:





180
La Factoria / [La Factor?a] Juegos Destacados
Junio 02, 2008, 04:48:20 PM




Edici?n #9 Marzo - Abril de 2011















Edici?n #8 Enero - Febrero de 2011































Ganadores Anteriores