Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Alfie en Noviembre 15, 2010, 01:46:24 AM

Título: Objeto en otro room
Publicado por: Alfie en Noviembre 15, 2010, 01:46:24 AM
Hola, como puedo hacer para que pulsando la tecla left del mouse en un objeto (instancia), se haga una copia del objeto en otra room, muchas gracias!
Título: Re: Objeto en otro room
Publicado por: Hackware en Noviembre 15, 2010, 02:09:05 AM
No puedes hacer eso, aunque puedes optar por crear una lista de instancias que deban crearse al cambiar de room. Dime qu? es lo que intentas lograr y te dir? cu?l es el mejor m?todo para realizarlo.
Título: Re: Objeto en otro room
Publicado por: Alfie en Noviembre 16, 2010, 07:43:06 AM
Por ejemplo, que si simulo que cargo un camion en un juego, cada objeto que clico en una lista salga en ese camion (la carga seria un room)
Título: Re: Objeto en otro room
Publicado por: Wadk en Noviembre 16, 2010, 02:40:35 PM
S?, lo mejor es hacerlo como dice Hackware. Tal vez sea posible modificar los rooms en tiempo de ejecuci?n pero no vale la pena, ser?a overkill :P
Te dejo una forma.

Cre? el siguiente objeto para controlar los objetos del cami?n, y marcalo como persistente:
Create:
[gml]objetos = 0;[/gml]

Cuando quieras agregar un objeto:
[gml]objeto[objetos, 0] = <x>;
objeto[objetos, 1] = <y>;
objeto[objetos, 2] = <nombre>;
objetos += 1;[/gml]
Lo que est? entre "<" y ">" lo ten?s que reemplazar. Por ejemplo:
[gml]objeto[objetos, 0] = 10;
objeto[objetos, 1] = 10;
objeto[objetos, 2] = objCaja;
objetos += 1;[/gml]
Para que se cree una instancia del objeto objCaja en la posici?n 10, 10.

Por ?ltimo, en el creation code del room que quieras "modificar":
[gml]if (instance_exists(<nombre>)){
    with (<nombre>){
        for (i = 0; i <= objetos; i += 1){
            instance_create(objeto[i, 0], objeto[i, 1], objeto[i, 2]);
        }
    }
}[/gml]
Donde dice "<nombre>" cambialo por el nombre que le pusiste al objeto que te dije que crearas antes.