LA PAGINA DE RAPE - COMO USAR GAME MAKER 5

INICIO
CONTACTARME
LIBRO DE VISITANTES
EL FORO MAS COMPLETO
CANCIONES DE RAP
TRUCOS DE WINDOWS XP
TRUCOS DE WINDOWS XP 2
RESOLVER ALGUNOS PROBLEMAS DE XP
RESOLVER ALGUNOS PROBLEMAS DE 7
RESOLVER ALGUNOS PROBLEMAS DE VISTA
COMO USAR EL SETUP DEL BIOS
CREAR UN MARIO BROS CON LUNAR MAGIC
RESOLVER ALGUNOS PROBLEMAS DE 2000
TRUCOS DE WINDOWS XP 3
COMO USAR GAME MAKER
CANTIDAD DE VISITAS EN ESTA PAGINA
GAME MAKER PRINCIPIO
GAME MAKER PRINCIPIANTES UN POCO MAS AVANZADOS
COMO USAR RPG MAKER
RPG MAKER PARA PROFESIONALES
RPG MAKER ULTIMOS TEMAS
TRUCOS DE WINDOWS XP 4
TRUCOS DE WINDOWS XP 5
RESOLVER ALGUNOS PROBLEMAS DE ME, 98, 95
RESOLVER ALGUNOS PROBLEMAS DE WINDOWS SERVER 2008
COMO USAR GAME MAKER 2
COMO USAR GAME MAKER 3
CURSO DE MUGEN
ZONA DE DESCARGAS DE CHARS PARA MUGEN 1
ZONA DE DESCARGAS DE CHARS PARA MUGEN 2
ZONA DE DESCARGAS DE CAHRS PARA MUGEN 3
ZONA DE DESCARGA DE CHARS PARA MUGEN 4
ZONA DE DESCARGA DE CHARS PARA MUGEN 5
ZONA DE DESCARGAS DE CHARS PARA MUGEN 6
ZONA DE DESCARGA DE CHARS PARA MUGEN 7
CODIGOS DE ALT
TRUCOS DE WINDOWS XP 6
COMO USAR GAME MAKER 4
RESOLVER ALGUNOS PROBLEMAS DEL WINDOWS SERVER 2003
ZONA DE DESCARGA DE COSAS PARA MUGEN
PROGRAMAS PARA INSTALAR AL FORMATEAR UNA CPU
CREAR SERVERS ONLINE PARA EL HALF LIFE
EL MICROPROCESADOR
TRUCOS DE WINDOWS XP 7
RESOLVER ALGUNOS PROBLEMAS DE 3 1 NT 4 F10
CODIGOS HTML PARA TUS PAGINAS WEB
CALCULADORA
PLUGINS PARA PHOTOSHOP
COMO CREAR MAPAS PARA EL COUNTER STRIKE 1.6
COMO CREAR UNA PAGINA WEB
CHISTES DE COMPUTACION
TODOS LOS SERVES ARGENTINOS DEL COUNTER STRIKE 1.6 PARTE 1
TODOS LOS SERVERS ARGENTINOS DEL COUNTER STRIKE 1.6 PARTE 2
TODOS LOS SERVERS ARGENTINOS DEL COUNTER STRIKE 1.6 PARTE 3
COMO ARMAR UN CUBO DE RUBIK
PLANTILLAS PARA DISEÑO DE WEB
HACKERS
TRUCOS DE WINDOWS XP 8
RESOLVER ALGUNOS PROBLEMAS DE WINDOWS EN GENERAL
DE 32 BITS A 64 BITS
CONSEJOS DE INSTALACION DE WINDOWS 7
COMO HACE WINDOWS EASY TRANSFER CONFIGURAR SE EQUIPO FACILMENTE
INSTALAR Y USAR WINDOWS XP MODO EN WINDOWS 7
ACTIVACION DE WINDOWS 7
INICIAR WINDOWS DESDE UN CD DVD
¿SE PUEDE OBTENER MAS DEL SISTEMA OPERTIVO CON WINDOWS?
INTRODUCCION A WINDOWS 7
CREAR UN JUEGO PARA CELULAR
CHARS PARA TU PRIMER MUGEN
PROGRAMAS PARA CREAR CHARS, STAGES, ETC.
COMO USAR GAME MAKER 5
COMO USAR GAME MAKER 6
TRUCOS DE WINDOWS XP 9
MI MUGEN
MANTENIMIENTO COMPLETO DE LA CPU
SCRIPTS PARA IKARIAM



 
MODIFICANDO LOS RECURSOS

SPRITES

Las siguientes funciones permiten modificar las propiedades de los sprites:

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).

Las siguientes funciones pueden utilizarse para crear nuevos sprites y para eliminarlos.

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. La función devuelve el índice del nuevo sprite. Si ocurre algún error devuelve -1.
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. Se dibuja la imagen en pantalla empleando las funciones de dibujado y luego se crea un sprite con ella. (Si no se hace dentro del evento drawing aún se puede hacer de manera que no sea visible si no se refresca la pantalla). Los demás parámetros son similares a los indicados en las anteriores funciones. La función devuelve el índice del sprite. Pero se poner algo de cuidado aquí. Aunque se habla de la pantalla, de hecho, lo que importa es el área en donde se dibuja. No importa el hecho de que haya una ventana en pantalla y que la imagen pudiera estar escalada en esta ventana. 
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.

Se cuenta con la siguiente rutina para cambiar la apariencia de un sprite.

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.

Las siguientes rutinas pueden ser utilizadas para crear nuevos sonidos y para eliminarlos.

sound_add(fname,kind,preload) Agrega un recurso de sonido al juego. Fname es el nombre del archive 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.

FONDOS

Las siguientes rutinas pueden ser empleadas para crear nuevas imágenes de fondo y para eliminarlas.

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. Se dibuja la imagen en pantalla usando las funciones de dibujo y a continuación se crea un nuevo fondo de ella. (Si no se hace esto en el evento drawing incluso se puede lograr que no sea visible en pantalla si no se refresca). Los otros parámetros son similares a los de las anteriores funciones. La función devuelve el índice del nuevo fondo. Se requiere algo de cuidado aquí. Aunque se habla de la pantalla, lo que importa es la región en la que se dibuja. No importa el hecho de que haya una ventana en pantalla y que la imagen en ella pudiera estar escalada. 
background_delete(ind) Elimina el fondo, liberando la memoria utilizada.

La siguiente rutina permite cambiar la apariencia de un fondo.

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.

FUENTES

Es posible crear, reemplazar y eliminar fuentes durante el juego usando las siguientes funciones. (No se debe reemplazar una fuente que está configurada como la actual o en su caso se debe reestablecer la fuente después del cambio).

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. firstindica el índice del primer carácter en el sprite. Por ejemplo, se puede usar ord('0') si el sprite solo contiene los dígitos. prop indica si la fuente es proporcional. En una fuente proporcional, para cada carácter el ancho de la caja de colisión es utilizado como el ancho del mismo. Finalmente, sep indica la distancia que debe separar a los caracteres horizontalmente. Un valor típico debiera estar entre 2 y 8 dependiendo del tamaño de la fuente. 
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.

PATHS

Es posible crear trayectorias y agregar puntos a las mismas. Sin embargo, nunca debe modificarse una trayectoria que está siendo usada por alguna instancia. Se pueden provocar resultados inesperados. Se tienen las siguientes funciones:

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 .

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.

SCRIPTS

No se pueden modificar los scripts durante la ejecución del juego. Los scripts son una parte de la lógica del juego. La modificación de los mismos llevaría a una autoreescritura de código que muy fácilmente llevaría a errores. Hay otras formas de hacer algo parecido. Si realmente se necesita ejecutar una pieza de código no conocida en tiempo de diseño (p. ej. Desde un archivo) se pueden hacer uso de las siguientes funciones:

execute_string(str) Ejecuta el fragmento de código en la cadena str. 
execute_file(fname) Ejecuta el código dentro del archive fname.

En ocasiones se quiere almacenar en una variable el índice de un script para luego ejecutarlo. Para ello se puede utilizar la siguiente función

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

TIME LINES

Las siguientes rutinas permiten la creación y modificación de las time lines. ¡No se deben alterar las líneas de tiempo que estén en uso!

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.

OBJETOS

También los objetos pueden ser manipulados y creados en tiempo de ejecución. NUNCA se debe cambiar o eliminar un objeto del cual existan instancias. Esto puede provocar efectos inesperados ya que ciertas propiedades son almacenadas en la instancia y, por tanto, al cambiarlas en el objeto no se tendrá el efecto deseado.

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.

Las siguientes rutinas son útiles para crear objetos mientras el juego se ejecuta. Como con todas las rutinas de modificación de recursos, se debe ser muy cuidadoso para que no se creen nuevos objetos todo el tiempo.

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. Se debe indicar el objeto (ind), el tipo de evento (evtype), el número de evento (evnumb, se pueden usar las constantes indicadas antes para la función event_perform()). Por ultimo se proporciona la cadena de código que debe ejecutarse (codestr). Se pueden agregar múltiples acciones a cada evento. 
object_event_clear(ind,evtype,evnumb) Se puede emplear esta función para borrar todas las acciones para un evento en particular.

La creación de objetos es en particular muy útil cuando se están diseñando scripts o bibliotecas de acciones. Por ejemplo, un script de inicialización puede crear un objeto para mostrar un texto y otro script puede agregar un objeto con un texto en particular. De esta forma se tiene un mecanismo simple para desplegar mensajes sin la necesidad de crear objetos usando la interfaz estándar.

ROOMS

La manipulación de habitaciones en tiempo de ejecución es algo muy riesgoso. Se debe tomar en cuenta que las habitaciones cambian todo el tiempo debido a lo que ocurre dentro del juego. Esto normalmente solo ocurre para la habitación en turno y hay muchas rutinas descritas en anteriores secciones para manipular las instancias, los fondos y los tiles en la habitación actual. Pero los cambios en la habitación active se mantendrán si dicha habitación es persistente. Entonces, nunca se debieran manipular elementos de la habitación en turno o de cualquier otra habitación que sea persistente y que ya haya sido visitada antes. Tales cambios en general no serán percibidos pero en ocasiones podrían ocasionar errores inesperados. Debido al hecho de que las habitaciones están enlazadas de manera complicada no hay ninguna rutina que permita eliminar una habitación.

Las siguientes funciones están disponibles

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 para la habitación con índice ind. vis indica si el fondo será visible y fore si se trata de un fondo de primer plano. back es el índice de la imagen de fondo. x, y indican la posición de la imagen y htiled y vtiled indican si la imagen debe dividirse en tiles. hspeed y vspeed indican la velocidad con la que el fondo se mueve y alpha indica un valor de transparencia alfa (1 = sólido y más rápido). 
room_set_view(ind,vind,vis,xview,yview,wview,hview,xport,yport,wport,hport,hborder,vborder,hspeed,vspeed,obj) Establece la vista con índice vind (0-7) para la habitación con índice ind. vis indica si la vista es visible. xview, yview, wview y hview indican la posición de la vista en la habitación. xport, yport, wport y hport indican la posición en pantalla. Cuando la vista debe seguir a un objeto hborder y vborder indican el borde mínimo visible que debe mantenerse alrededor del objeto. hspeed y vspeed indican la máxima velocidad con la que la vista puede moverse. obj es el índice del objeto o el índice de la instancia. 
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. Devuelve el índice de la misma. Se debe notar que la habitación no formará parte del orden de habitaciones. Por lo que la nueva habitación no cuenta con habitaciones previa ni siguiente. Si se desea moverse a una habitación agregada se debe indicar el índice de la misma. 
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. Devuelve el índice del tile. back es el fondo del cual se toma el tile. Left, top, width y height indican la parte del fondo que forma al tile. x, y es la posición del tile en la habitación y depth es la profundidad del tile. 
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.

ARCHIVOS, REGISTROS Y EJECUCION DE PROGRAMAS

ARCHIVOS GML

Es útil utilizar archivos externos en juegos.  Por ejemplo, podrías hacer un archivo que describe qué ciertas cosas deben suceder en qué momento.  También puedes querer salvar la información para la próxima vez que se ejecute el juego.  Las funciones siguientes sirven para leer y escribir datos en archivos de texto:

 

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.

 

Para manipular archivos del sistema puedes utilizar las siguientes funciones:

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). Puedes agregar las siguientes constantes

para ver el tipo de archivos que desees:

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. Usa una combinación de las constantes indicadas anteriormente.

 

Las siguientes funciones sirven para cambiar los nombres de archivos. Observa que estas funciones no afectan a los archivos en sí, si no al nombre:

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.

 

En algunas situaciones puede que quieras leer datos de archivos binarios. Para ello dispones de las siguientes rutinas de bajo nivel:

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.

 

Si el jugador ha seleccionado modo seguro en sus preferencias, para ciertas rutinas, no se permite especificar la ruta y sólo puedes acceder a los archivos en la carpeta de la aplicación p. Ej. para escribir en ellos.

 

Las siguientes tres variables de sólo lectura pueden ser útiles:

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). Para obtener estos argumentos puedes usar las siguientes dos rutinas:

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.

 

Por último, puedes leer el valor de las variables de entorno con la siguiente función:

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

REGISTRO

Si deseas almacenar una pequeña cantidad de información entre cada ejecución del juego hay un mecanismo más simple que el emplear un archivo. Puedes usar el registro. El registro es una gran base de datos de Windows para mantener todo tipo de configuraciones para los programas. Una entrada tiene un nombre, y un valor. Puedes usar tanto cadenas como valores reales. Tenemos las siguientes funciones:

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.

 

En realidad, los valores en el registro están agrupados en claves. Las rutinas anteriores trabajan con valores dentro de la clave que está creada especialmente para tu juego. Tu programa puede usar esto para obtener cierta información sobre el sistema en el que se está ejecutando el juego. También puedes leer valores en otras claves. Puedes escribir valores en ellas pero ten mucho cuidado.PUEDES FÁCILMENTE DESTRUIR TU SISTEMA de esta forma. (La escritura no se permite en modo seguro). Nota que las claves también están colocadas en grupos. Las siguientes rutinas trabajan por defecto con

el grupo HKEY_CURRENT_USER. Pero si quieres puedes cambiar este grupo raíz de trabajo. Por ejemplo, para obtener el directorio temporal actual, usa:

 

 
  path = registry_read_string_ext('Environment','TEMP'); 

 

Las siguientes funciones existen para moverte por el registro con libertad:

 

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. Usa los siguientes valores:

0 = HKEY_CURRENT_USER

1 = HKEY_LOCAL_MACHINE

2 = HKEY_CLASSES_ROOT

3 = HKEY_USERS

ARCHIVOS INI

Para pasar ciertos parámetros a un programa es corriente utilizar los archivos INI. Los archivos INI contienen secciones y cada sección contiene un número de parejas nombre-valor. Por ejemplo:

 

 
[Form]
Arriba=100
Izquierda=100
Titulo=El mejor juego de la historia
[Game]
MaxScore=12324

Este archivo contiene dos secciones: la primera llamada Form y la segunda llamada Game.  Primera sección contiene 3 parejas de valores. Las dos primeras tienen un valor real mientras que la tercera es una cadena de texto. Los archivos INI son muy fáciles de crear y editar. En Game Maker puedes utilizar las siguientes funciones para esto:

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.

EJECUCION DE PROGRAMAS

Game Maker también tiene la posibilidad de iniciar programas externos. Hay dos funciones disponibles para esto: execute_program y execute_shell. La función execute_program inicia un programa, posiblemente con algunos argumentos. Puede esperar hasta que el programa termine (pausando el juego) o continuar con el juego. La función execute_shell abre un archivo. Puede ser cualquier archivo para cuyo tipo esté definida una asociación, p. Ej. un archivo html, un archivo de Word, etc. O puede ser un programa. No puede esperar a que se termine la ejecución por lo que el juego continúa.

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.

 

Ambas funciones no funcionarán si el jugador activa el modo seguro en sus preferencias. Puedes comprobar esto usando la variable de solo lectura:

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

 

Buscador de Internet

Hoy habia 34497 visitantes (54657 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis