Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: fofi en Octubre 24, 2010, 12:20:50 PM

Título: pasar de room
Publicado por: fofi en Octubre 24, 2010, 12:20:50 PM
buenas tengo un problema que nose como hacerlo y me toy volviendo loco,tengo 3 room,room1,room2 y room3,tengo un camion en la room1 y quiero que cuando pase ala room2 aparezca por la izquierda,eso bien,pero cuando quiero que pase de la room3 ala room2 tambien me sale por la izquierda y queda mal,quiero que salga por la derecha no se si me explicao bien,muchas gracias
Título: Re: pasar de room
Publicado por: lucifer en Octubre 24, 2010, 12:36:46 PM
no te entiendo llo k kieres si nos lo explicas te podemos ayudar
Título: Re: pasar de room
Publicado por: fofi en Octubre 24, 2010, 12:43:45 PM
aver es como un camino de izquierda a derecha,room1,room2 y room3 los tres room son un camino,yo empiezo enel room1 y manejo un camion,cuando paso al room2 aparezco por la izquierda del room2 y cuando paso del room2 al room3 tambien aparezco por la izquierda eso mubien,pero ala hora de volver de la room3 ala room2 y logo ala room1 siempre aparezco por la izquierda de la room y tengo que aparecer por la derecha,por que sera el camino de vuelta,muchas gracias espero que lo entendais mejor asi jeje
Título: Re: pasar de room
Publicado por: lucifer en Octubre 24, 2010, 12:56:14 PM
no entendio muy bn pero alomejor si te e entendio aver
as marcado en las rooms la casilla de permanent?
Título: Re: pasar de room
Publicado por: Navel 2.0 en Octubre 24, 2010, 01:04:36 PM
Fofi, eso creo que est? resuelto en otros temas (creo recordar que en uno de los temas que abri? lucifer), b?sca en temas porque encontr? informaci?n que ten?a que ver con puertas y lo consegu? resolver yo solo (aunque no sea la soluci?n m?s eficiente)

- En evento colisi?n de las puertas creas un switch (?Se escribe as??) en el que identifiques las puertas de tu juego.
Eso lo sabes en las room, pasas el rat?n por encima de la puerta en cuesti?n y en la barra de abajo te aparecer? Id:100032, por ejemplo. Cada puerta tiene un Id diferente. De este modo consigues saber por qu? puerta est?s entrando.

- Dentro de cada case, pones dos variables globales que guarden los valores x e y de la habitaci?n destino. Por ej: global.posicionX, y global.posicionY

- En el evento create del personaje, para tu caso un cami?n, debes poner la posici?n x e y con la posici?n que marcan tus variables globales:
obj_camion.x=global.posicionX; obj_camion.y=global.posici?nY.

Si tienes alg?n problema d?melo y te paso un ejemplo sencillo. (Ahora no lo tengo a mano)
Saludos
Título: Re: pasar de room
Publicado por: fofi en Octubre 24, 2010, 01:20:54 PM
no lo entiendo losiento
Título: Re: pasar de room
Publicado por: Navel 2.0 en Octubre 24, 2010, 09:42:04 PM
Yo, hace cosa de un mes ni conoc?a el programa y buscando y probando he hallado una soluci?n (aunque no sea la id?nea). Busca en manuales, aparecen muchas cosas de las que se pregunta.

En OBJ_INI EN EL EVENTO GAME START -> Inicializaci?n de variables globales
///////////////////////////////////////////////////////////////////////////////////////////
// Dar valores iniciales a las variables inX e inY.                                      //
// Esto es para que obj_piedra est? en una posici?n determinada al inicio                //
// de la pantalla                                                                        //
// Lo he puesto en el evento Game Start para que s?lo ocurra una vez en el juego         //
// As?, aunque paes por la pantalla inicial infinitas veces, s?lo ocurre una vez.        //
///////////////////////////////////////////////////////////////////////////////////////////

//Tu lo pones en el evento que m?s te convenga

global.inX=5;
global.inY=5;



OBJ_PUERTA EN EL EVENTO COLISI?N CON PIEDRA -> Coificaci?n de las puertas

{
a=self.id       //a es una variable que guarda la id de la puerta que vas a atravesar, con la que colisionas
switch (a!=0)   //cuando a sea distinta de cero vas a buscar la puerta que atravieso
{               // igual sirve switch(a). Pero en las pruebas que hago suelo hacer
               //comparaciones para identificar por d?nde falla el programa, tema de depuraci?n.
   case a==100008:  
       a=0; room_goto(rm_cuarto1);global.inX=64;global.inY=96;break;
//?Que significa?
//cuando sea la id=100008 que es la que corresponde a la puerta de la derecha de rm_mapa
//voy a aparecer a la derecha de la puerta de rm_cuarto1 as? que:
//- Cambia a=0. Esto no es obligatorio pero es costumbre m?a el colocar la variable que salta
// el switch o lo que sea a 0 me sirve en depuraciones del programa.
//- Ves al cuarto rm_cuarto1
//- Almacenas en una variable global inX la posici?n "x" en que aparecer? en el rm_cuarto1. En este caso 64
//- Almacenas en una variable global inY la posici?n "y" en que aparecer? en el rm_cuarto1. En este caso 96
//- Fin del "case"
   case a==100019:         //puerta de arriba de rm_mapa para aparecer en rm_cuarto2
       a=0; room_goto(rm_cuarto2); global.inX=256; global.inY=96; break;
   case a==100022:         //puerta de rm_cuarto1 para aparecer a la izquierda de la puerta de rm_mapa
       a=0; room_goto(rm_mapa); global.inX=576; global.inY=224;   break;
   case a==100021:         //puerta de rm_cuarto2 para aparecer abajo de la puerta de rm_mapa
       a=0; room_goto(rm_mapa); global.inX=256; global.inY=32;    break;
   default: break;
}
}


OBJ_PIEDRA EN EL EVENTO ROOM START -> Codificaci?n del objeto que atraviesa las puertas
///////////////////////////////////////////////////////////////////////////
// Cada vez que entres en un cuarto la posici?n de la piedra ser? la que //
// hayas marcado en inX e inY. Estos valores est?n puestos en el evento  //
// colisi?n de las puertas                                               //
///////////////////////////////////////////////////////////////////////////

x=global.inX;
y=global.inY;    


Y el ejemplo prometido