Agosto 21, 2014, 03:51:05 AM Ultima modificación: Agosto 21, 2014, 11:47:36 PM por ivn_eze
Hola a todos, hace ya 3 añitos larguitos  XD que estoy desarrollando el juego que ven ahí abajo en mi firma. como soy un "pequeño niño" que simplemente queria hacer un juego, al principio no le puse nombre a la mitad de las cosas.... 3 años despues, ese pequeño niño se da cuenta de que tener 80 objetos y 20 rooms mescladas no le iba a dejar concentrarse en terminar el juego. XD

En fin, ahora se me acaba de ocurrir una idea:en el gmk, cada archivo, objeto, path, room, etc, tiene su archivo gmk. así que se me ocurrió que en vez de dar  todo el juego de una, podria hacer que el juego "cargue" los gmk (instalados en la carpeta del juego) de las rooms en el juego, haciendo posible la actualizacion del juego y la adicion de contenido descargable, incluso ya estoy haciendo un script para poder renombrar la extensión de los archivos para que no sean modificables, hasta ahí barbaro  :D.

pero como saben gm:s esta muy limitado con el uso de archivos externos y  lo poco de documentacion sobre el cargar rooms externas es de gm7, lo cual obiamente no serviria en studio.

en fin, alguien puede pasarme alguna documentacion que pueda ser de ayuda? no digo que me armen un ejemplo ni nada de nooberias, sinó alguna página o algo que me ayude a desarrollar el codigo por mi mismo.

muchas gracias por su ayuda.


Se me ocurre que tus 20 escenarios sen uno solo, y dependiendo del valor que tenga tu objeto control en esa room, sea el escenario que se cree. Podrías crear un archivo *.txt (o la extensión que vos quieras) y almacenar 3 datos por línea, algo similar a esto: "nombreObjeto,posX,posY" y al leer cada línea, simplemente pasas un explode para que te separe los datos por ",". Como GM no tiene explode, tenes que usar este script:

http://www.comunidadgm.org/desarrollo-de-scripts/explode()/

Eso te almacenaría todo en un array, a mi parecer tendría que ser un array de este tipo: miObjeto[z,x,y], donde "z" es el nombre del objeto y los demás son las coordenadas respectivas en el juego. Para crear el objeto simplemente podrías hacer algo así:

instance_create(miObjeto[1,0,0],miObjeto[1,1,0],miObjeto[1,1,1]);

Tendrías que probar si se puede de esa forma.

bueno, parece de ayuda. ;D

la idea no es cargar esas 20 rooms, sino que en el caso de que quiera actualizar el juego o agregar contenido descargable (en este caso rooms) en la seccion de dlcs del juego haya un enlance a mi servidor (eso ya lo se hacer) y al bajar el dlc en cuestion solo tendria que pegar el gmk del room en la carpeta del juego, este los leeria y los agregaria al juego, tal como funciona un engine. se me ocurrio que podrian ser gmk debido a que en el gmz las rooms estan repartidas de esta forma, pero la idea de agregarlo por txt no es mala.incluso parece mas viable.

lo tomare en cuenta, muchas gracias.

EDIT: ¿pero que pasaria con las tiles? tengo como 3 layers por room

Buena pregunta, nunca supe como cargar tiles por código, aunque si se que existen códigos para hacerlo, poné en tu editor de código "tiles_" y vas a ver una lista de comandos para hacerlo. Sería cuestión de crear los tiles antes y asignarles una ID y luego cargarlos por código para que cree el tile de esa ID.

Si no mirá este script que encontré en GMC:

http://gmc.yoyogames.com/index.php?showtopic=464037

 ??? lo probe en un juego aparte y funciona, pero ¿no sabés de alguna forma de hacer un caché de los objetos, id y ubicacion? sino voy a tener que rehacer las rooms de cero, para colmo el tamaño promedio de los objetos es de 32x32 y el room de 2000x2000.

#6 Agosto 25, 2014, 02:03:04 AM Ultima modificación: Agosto 25, 2014, 03:19:40 AM por Iros
No, la verdad que no. Aunque si mal no recuerdo, Twister hizo una vez un script para guardar todo el contenido de una room, aunque creo que era únicamente para objetos, podrías probar adaptar ese script con el script de los tiles.

[EDIT]

Acá te dejo dos script, uno es de Texic y el otro de Twister:

http://www.comunidadgm.org/desarrollo-de-scripts/room_exportimport/

http://www.comunidadgm.org/desarrollo-de-scripts/script-guardadocargado-de-mapas/