?Existe un c?digo o acci?n para que cuando pases al pr?ximo room, el objeto que quieras (por ejemplo el personaje principal) aparezca en un lugar determinado del room?, De veras lo necesito si es que existe :'( :'( :'( :'( :'(
Puedes hacer un objeto persistente que le indique en que posicion X,Y debe aparecer el objeto en el inicio de la room.
Asegurate de que tienes Activado el Advanced View en el Game maker, a la room en la que quieras que eso pase le pones en el Creation Code:
instance_create(X,Y,personaje);
Esa X y esa Y puedes poner directamente como un numero directo o podrian ser dos variables globales que quiza en la room anterior las has cambiado y puesto a un valor que te interesa para que el personaje aparezca en esas coordenadas en la room siguiente.
Creo que es la tipica situacion de un juego de rol en el que hay un nivel con varias entradas o salidas..
Es exactamente lo que dices bonachiu, eso me sirvi?, pero solo me falta saber una cosa, ?como puedo hacer que el personaje aparezca en tal lugar dependiendo de que room vino? no se si me explico bien.
Por ej: si el personaje pasa del room 1 al room 2, que aparezca en tal x y tal y; y si el personaje pasa del room 3 al room 2 que aparezca en otras coordenadas que no sean las anteriores.
Eso es exactamente lo que quiero saber.
PD: (eso de las variables todav?a me complica un poco :'( :'( :'( :'( :'( :'()
Es exactamente lo que dices bonachiu, eso me sirvi?, pero solo me falta saber una cosa, ?como puedo hacer que el personaje aparezca en tal lugar dependiendo de que room vino? no se si me explico bien.
Por ej: si el personaje pasa del room 1 al room 2, que aparezca en tal x y tal y; y si el personaje pasa del room 3 al room 2 que aparezca en otras coordenadas que no sean las anteriores.
Eso es exactamente lo que quiero saber.
PD: (eso de las variables todav?a me complica un poco)
Citar?como puedo hacer que el personaje aparezca en tal lugar dependiendo de que room vino?
para que un objeto se mueva a un lugar simplemente le asignas nuevos valores a sus cordenadas x e y
para asignarle un valor a una variable se usa el signo de = seguido de el valor que le queremos dar
por ejemplo
x = 123;
y = 211;
si quieres que sea una posicion diferente dependiendo de la room entonses pon
if(room = "nombre de la primer room")
{
x = 123;
y = 211;
}
if(room = "nombre de la segunda room")
{
x = 423;
y = 11;
}
etc
Pero creo que lo que el kiere es esto...
tenemos estas rooms...
room :GM5: ----- room :GM6: ----- room :GM7:
El kiere que si se pasa de la room :GM5: a la room :GM6: el personaje aparezca en x = 4, y = 5 por ejemplo...
Pero si nos vamos a la :GM7:... y por alguna razon decidimos volver a la :GM6:... aparezcas en x = 20, y=3 POR EJEMPLO...
me parece que eso es lo que el kiere... y a mi tambien me gustaria saberlo...
Bien.. en cada room haras una cosa, en todas las room pones en el creation code, en la ultima linea (OJO, es importante que si tienes mas codigo como el que te puse en el anterior post en el creation code, que este trozo que te estoy poniendo lo pongas despues del que te di o al final de todo el creation code:
global.room_anterior=room
De esta forma despues de haber hecho una anterior comprobacion de la room para posicionar al personaje con este codigo lo que hacemos es cambiar la variable global room_anterior a la room actual, asi cuando cambiemos de nivel y queramos unas coordenadas determinadas dependiendo del room pondriamos el siguiente codigo:
//ejemplo
if(global.room_anterior==room6){
instance_create(233,144,Personaje);
}
if(global.room_anterior==room10){
instance_create(544,128,Personaje);
}
//... y un sin fin de posibilidades
//y finalmente cambiamos global.room_anterior a la actual para un siguiente cambio de nivel para que el proximo nivel pueda hacer lo mismo que ha hecho este
global.room_anterior=room
Bien, solo una cosa mas, haria falta que inicializaras esta variable al comenzar el juego, con una room que este la primera de todas que se dedique a inicializar variables y acto seguido haga room_goto_next(), porque si no la inicializas y en la primera room ya haces la comprobacion seguro que te salta error de unkown variable
eso era exactamente lo que buscaba muchas gracias.
Ahora una cosa como aclaraci?n, "global.room_anterior=room" ?va en el primer room en creation code?
Y esto donde exactamente:
"//ejemplo
if(global.room_anterior==room6){
instance_create(233,144,Personaje);
}
if(global.room_anterior==room10){
instance_create(544,128,Personaje);
}
//y finalmente cambiamos global.room_anterior a la actual para un siguiente cambio de nivel para que el proximo nivel pueda hacer lo mismo que ha hecho este
global.room_anterior=room"
es que me complica mucho esto de los c?digos
PD. ah y como hago para inicializar las variables :-[ y donde va "room_goto_next()" supongo que cuando pase al pr?ximo room, no?
Ok, gracias por todo y perd?n por preguntar tanto :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[ pero todav?a me falta aprender bastante...
Pues para inicializar una variable simplemente tienes que darle un valor por primera vez.. si yo escribo global.room_anterior=room, aparte de darle el valor de room la estoy inicializando si no existia de antes
CitarAhora una cosa como aclaraci?n, "global.room_anterior=room" ?va en el primer room en creation code?
Puess va en todos los room, pero tambien en esa primera room para inicializarlo y que no te salte error, en la
primera room podrias poner simplemente el codigo:
global.room_actual=room;
room_goto_next(); //es una funcion que nos lleva a la siguiente room
y en
cualquier otra room:
//ejemplo
if(global.room_anterior==room6){
instance_create(233,144,Personaje);
}
if(global.room_anterior==room10){
instance_create(544,128,Personaje);
}
//... y un sin fin de posibilidades
//y finalmente cambiamos global.room_anterior a la actual para un siguiente cambio de nivel para que el proximo nivel pueda hacer lo mismo que ha hecho este
global.room_anterior=room
Pero este codigo que te acabo de poner deberas cambiarlo un poquitin dependiendo de la room en la que estes, pues cada room es distinta y tendra distintas entradas, tendras que ir modificandolo a tu gusto
:(todav?a no me anda, creo que estoy poniendo las cosas mal.
Te explicar? exactamente donde puse todo...
"global.room_anterior=room" lo puse en un objeto que aparece en el primer room y en casi todos (es una pared invisible)
"global.room_actual=room;
room_goto_next(); lo puse en el objeto "personaje" en create y luego el c?digo (aparece en el 1? room);
Y "if(global.room_anterior==room6){
instance_create(233,144,Personaje);
}
if(global.room_anterior==room10){
instance_create(544,128,Personaje); (CON LOS NOMBRES CAMBIADOS Y LAS COORDENADAS CORRECTAS OBVIAMENTE)
Entiendo perfectamente la l?gica de tu soluci?n pero no se exactamente donde poner todo.
Que fastidio que soy... :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[
Me has entendido mal, esos codigos en ningun caso deben estar aplicados en algun evento de algun objeto, TODOS deben estar en el Creation Code de las rooms, creo que lo mejor sera que suba un ejemplo en .gmk, de todas formas te has hecho bastante lio, porque no hay que distinguir entre room_actual y room_anterior, yo solo te habia dicho que usaras global.room_anterior
El problema que teniamos era que si todas las room hacian un chequeo de la room de la que venias para colocar al personaje en una posicion u otra, la primera de todas las room daria error porque global.room_anterior aun no existiria, pues despues del checkeo venia la parte en la que global.room_anterior tomaria el valor de la room en la que estas para un posterior checkeo en una room distinta.
Entonces te habia propuesto hacer una primera room que solo tenga este codigo en el creation code:
global.room_anterior=room;
room_goto_next();
El resto es el codigo que te puse en el creation code del resto de rooms (ni personajes en evento create ni nada, ahi no tienes que tocar nada respecto a esto)
:ban: :ban: :ban:
Ahora entend? perfecto, era mucho m?s f?cil de lo que me hab?a imaginado antes :-[ :-[ :-[ .
Ya hice todo y empieza bien lo ?NICO que me falta por pulir es un error, me dice que no se reconoce la variable "pantalla". Que est? escrito en el objeto para pasar de room, "Room_goto(other.pantalla);
?Tengo que cambiar algo?
Pd: creo que esta va a ser mi ?ltima pregunta, muchas gracias por todo lo dem?s y especialmente por la paciencia :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[ :-[
Eso esta fuera ya de lo que has preguntado al principio del topico, yo he hecho un ejemplo para que veas como y donde se ponia el codigo de memorizacion de la room anterior y como chequearlo y hacer al personaje aparecer en un sitio u otro. Lo que preguntas de la variable pantalla es una asignacion que he hecho pulsando control y click derecho en la room sobre el objeto de cambio de nivel y accediendo a su creation code unico
ahh, ya lo entend?, pero sigue diciendo variable desconocida= pantalla :'( :'( :'( :'(
Tu dices que abra otro tema para saber como inicializar una variable?