Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: krajtin en Septiembre 11, 2010, 03:32:05 PM

Título: Teletransporte
Publicado por: krajtin en Septiembre 11, 2010, 03:32:05 PM
Hola buenas tengo un problema:

He creado un objeto que permite teletransportar  a mi personaje;
Por ahora todo est? como yo quiero, pero el problema es que quiero que ese objeto  creado en la room determinada se mantenga en dicha room.

?c?mo puedo hacer que el objeto est? presente en la room aunque cambia de room?



Gracias
Título: Re: Teletransporte
Publicado por: slampdesign en Septiembre 11, 2010, 04:06:44 PM
si te refieres a que aparezca en todas las rooms, activa la casilla "persistent" en las opciones de tu objeto..debajo del nombre...saludos
Título: Re: Teletransporte
Publicado por: krajtin en Septiembre 11, 2010, 04:24:50 PM
Ya lo hice pero cuando  pongo la casilla persistent, ese objeto se me traslada a la room siguente y no queiro eso
Título: Re: Teletransporte
Publicado por: slampdesign en Septiembre 11, 2010, 04:39:34 PM
ok, entonces lo que quieres es que, as cambies de room ese objeto aparezca en la posicion que le corresponde en la room donde lo insertaste??
Título: Re: Teletransporte
Publicado por: Hackware en Septiembre 11, 2010, 10:04:16 PM
Yo s? te entend?, lo que debes hacer es marcar la room como persistent, no el objeto, desde el editor de rooms. Esto no solo afectar? al "objeto creado" sino a todas las instancias de dicha room. Si esto no resuelve tu problema entonces qu?tale lo de persistent y prueba guardando las coordenadas y dem?s variables del objeto creado que consideres necesarias en una lista o array global y haz que cada vez que entres a esa room se vuelva a crear el objeto recargando las variables desde la lista o array para que parezca que el objeto siempre estuvo ah?.

?Saludos!
Título: Re: Teletransporte
Publicado por: krajtin en Septiembre 12, 2010, 03:03:45 PM
Vale ahora ese objeto ya no se va, pero existe otro problema:

El problema es que cuando he dejado el objeto en la room 1 y quiero teletransportarme desde la room 2 a la room 1, el personaje se teletransporta a la room 2 sin estar el personaje. Y quiero que se teletransporte  a  la    room 1.


Gracias.
Título: Re: Teletransporte
Publicado por: slampdesign en Septiembre 12, 2010, 05:21:56 PM
entonces crea otro objeto ind?ntico al de teletransporte, pero colocalo en la room2, no te olvides de colocar que se vaya a la room1, ese debe ser tu problema...
Título: Re: Teletransporte
Publicado por: krajtin en Septiembre 12, 2010, 09:46:38 PM
y como puedo hacer que ese objeto se desplace
Título: Re: Teletransporte
Publicado por: Hackware en Septiembre 12, 2010, 10:52:18 PM
Puede ser impresi?n m?a, pero creo que lo que intestas hacer se puede resolver de un modo menos complicado. Sin embargo, hasta no entender bien que es lo que intentas hacer no te puedo ofrecer m?s opciones ?Qu? objeto crea qu? otra cosa (con nombres)? ?D?nde lo crea? ?C?mo se comportan ambos objetos por separado?
Título: Re: Teletransporte
Publicado por: krajtin en Septiembre 13, 2010, 03:12:30 PM
Mira  voy a ser m?s detallista:

Cuando pulsas la tecla "X" el personaje crea un objeto1 (  es el teletransporte) cuando ese mismo personaje vuelve a pulsar la tecla "X" crea otro objeto2(este objeto permite teletransportar al personaje al lugar donde est? situado el   objeto1 creado).


El personaje se puede teletransportar cuando colisiona con el objeto2, pero claro si el personaje se va de la room donde ha colocado el objeto1 y crea  en otra room distinta el objeto2 el personaje no puede teletransportarse  a la room donde ha puesto el objeto1
Título: Re: Teletransporte
Publicado por: Hackware en Septiembre 14, 2010, 12:08:26 AM
Bien, ahora todo me queda claro, excepto una cosa ?Porque deseas que el personaje se teletransporte de una room a otra? O sea ?No puedes crear ambas rooms en una sola con varias vistas e instancias desactivadas? ?De qu? tama?o son las rooms?

Suponiendo que no puedes unificar las rooms entonces lo que debes hacer es simular que los telepuertos son persistentes en la room. Para lo que debes crear un array como este al presionar X:

Citarif (telecontrol==0)
{
instance_create(x,y,telepuerto1)
tp1[0]=room_index; //room actual
tp1[1]=x;
tp1[2]=y;
//y as? vas agregando todas las variables que creas pertinentes
telecontrol+=1;
}
else if (telecontrol==1)
{
instance_create(x,y,telepuerto2)
tp2[0]=room_index;
tp2[1]=x;
tp1[2]=y;
telecontrol+=1;
}

La variable global telecontrol cuando y cu?l telepuerto se debe crear, de modo que si es 0 se deber? crear el telepuerto1, si es 1 se deber? crear el telepuerto2, si es 2 no se deber?n crear m?s telepuertos y el portal entre ambos estar? abierto.

Luego en el evento de colisi?n con telepuerto2...

Citarif (telecontrol==2)
{
room_index=tp1[0];
x=tp1[1];
y=tp1[2];
instance_create(x,y,telepuerto1);
}

Ese es el principio b?sico, necesitas ampliarlo un poco m?s, pero me temo que voy a tener que dejar la respuesta hasta ah?, debo irme con urgencia ?Saludos!
Título: Re: Teletransporte
Publicado por: krajtin en Septiembre 14, 2010, 05:17:54 PM
He colocado tu codigo: todo va bien excepto que no puedo que el personaje se teletransporte.


Lo habr? puesto mal:

Que hay que colocar en el room_idex
Y que es tp1[0]
         tp1[1]=x;
         tp1[2]=y;





Bueno si no lo consigo dejar? de dar la lata y me olvidar? de ese objeto


De todas formas Gracias
         
Título: Re: Teletransporte
Publicado por: Hackware en Septiembre 14, 2010, 11:16:36 PM
Bueno, la verdad es que no me imagino qu? clase de juego est?s desarrollando; una funci?n as? es muy inusual.

room_index es una variable propia del juego que representa la room actual en la que te encuentras.
tp[n] es un array de mi invenci?n; cualquier variable que crees si le agregas corchetes se vuelve un array; consulta el manual para m?s informaci?n.

Por otro lado, si no sueles usar GML me ser?a bastante dif?cil explic?rtelo, ya que los arrays no est?n presentes en la interfaz D&D.

?Saludos!