Hola primero que nada gracias por leer y espero que me puedan ayudar en realidad no creo que sea una duda muy
complicada y seguramente ya la han resuelto antes, pero busque y no encontre, la duda es la siguiente :
como decia quiero hacer una room tipo laberinto el problema es que no manejo mucho codigo y la transicion de room a room
la hago con D&D ( drag an drop , mal por mi XD) imagino que en codigos es mucho mejor y queda mucho mas ordenadito a la hora
de editar algo agradeceria que me ayudaran con algun codigo porque se me presenta un problema : ver imagen
como logro en codigo que desde la room amarilla no aparesca como si estubiera volviendo de la room blanca
y aparesca en la posicion media ?
disculpen lo basico del dibujo pero creo que si lo explicaba solo en palabras seria mas enredo
muchas gracias a los que puedan contestarme :D
No digo que vaya a funcionar a la primera, pero las ideas de este post te pueden ayudar
http://www.comunidadgm.org/preguntas-y-respuestas/como-cambio-de-room-correctamente/msg109831/#msg109831
no me sirvio la verdad , tratare de investigar los codigos de rooms a
ver si puedo hacer algo por mi cuenta
gracias de igual manera :) por tu tiempo
Según lo que entiendo... podrías hacer persistente las rooms... para que aparezca en el lugar donde salió, no? XD
en ese caso tampoco me serviria , funcionaria solo al moverme horizontalmente y nesecito que al venir de la room (xx) aparesca en una posicion especifica en este caso seria manteniendo la coordenada x pero apareciendo al medio de la rom
"Si la habitación anterior fue la habitación xx posiciónate en las coordenadas"
EVENTO ROOM_START
[gml]
if (room_previous(room) == room_xx)
{
x = El valor que quieras
y = El valor que quieras
}
[/gml]
La desventaja de este método es que se van a tener que usar muchos IF, al menos uno por cada habitación cuando quieras especificar una posición en concreto.
Cita de: penumbra en Agosto 05, 2015, 07:19:32 PM
"Si la habitación anterior fue la habitación xx posiciónate en las coordenadas"
EVENTO ROOM_START
[gml]
if (room_previous(room) == room_xx)
{
x = El valor que quieras
y = El valor que quieras
}
[/gml]
La desventaja de este método es que se van a tener que usar muchos IF, al menos uno por cada habitación cuando quieras especificar una posición en concreto.
Pero la función room_previous(x) representa el room anterior al room x en el árbol de recursos, es decir el que está más arriba en éste y no el room que estaba activo antes de cambiar a otro room.
Lo que yo haría sería guardar el último room visitado en una variable y actualizarla en el evento room_end. Luego, en el evento room start hacer lo que dice penumbra, tal vez llamando a un script que englobe todas las combinaciones en vez de hacer un código especial por cada room, para facilitar la depuración. Por ejemplo algo así:
Evento room end:global.room_anterior=room;
Evento room start:posiciona_personaje();
Script posiciona_personaje:var r;
r=global.room_anterior;
switch room
{
case room1:
if r=room2
//código para el caso de que llegue desde el room 2
else if r=room3
//código para el caso de que llegue desde el room 3
else if r=room_enésimo
//código para el caso de que llegue desde el room enésimo
break;
case room2:
if r=room1
//código para el caso de que llegue desde el room 1
else if r=room3
//código para el caso de que llegue desde el room 3
else if r=room_enésimo
//código para el caso de que llegue desde el room enésimo
break;
.
.
.
etc.
}
Tienes razón, Guacusio. Olvidé por completo que room_previous() devuelve el número de recurso menos 1, no la habitación de la que provienes. Ya me imagino lo que será el script en un juego con 100 habitaciones.
Creo que también se podrían usar estructuras de datos o arreglos para guardar cada coordenada de destino dependiendo del índice de habitación que quede guardada en la variable room_anterior, sabiendo el número de recurso (índice) correspondiente a cada habitación.
Bueno primero que nada gracias a todos por leer y por contestar si bien entendi algunas cosas como dice penumbra
seria un codigo mega gigante porque pretendia que el juego tubiese por lo menos unas 100 rooms que eran mini habitaciones de un mini laberinto
y bueno lo de mini se fue al "carajo" XD ya que por lo que veo es mas complicado de lo que pense
sin embargo logre entender varias cosas y lo agradesco , quein iba a pensar que llegar a una room de 2 ubicaciones distintas seria complicado
no imagino como lo hacen en los juegos para hacer una habitacion tipo "cruce" XD ,osea que puedes llegar a ella dede norte sur este y oeste XD
pero como dije muchas gracias a todos y pido se cierre el tema
thx