Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Shoto_reaper en Febrero 26, 2010, 09:35:51 PM

Título: Cambiar sprite desde otra room
Publicado por: Shoto_reaper en Febrero 26, 2010, 09:35:51 PM
El problema es el siguiente:
Desde la room2,digo a un objecto que si clickeo en el, el objeto1 de la room1 cambie el sprite.
Pero al volver a la room1, este sigue teniendo la misma apariencia,sin cambiar al nuevo sprite.Supongo que sea porque al volver a la habitacion,las variables se reiniciar,no se.
?Alguna idea?
Título: Re: Cambiar sprite desde otra room
Publicado por: Hackware en Febrero 26, 2010, 10:29:25 PM
Eso es imposible de lograr de dicha forma, hasta donde yo s?. Lo que yo har?a es crear un objeto persistente que contenga una "lista de pendientes" que al cambiar entre rooms realice los cambios que se hayan agregado a la lista para dicha room.

Esa es una opci?n; algo complicada, pero lo ?nico que se me ocurre de momento.

?Saludos!
Título: Re: Cambiar sprite desde otra room
Publicado por: Shoto_reaper en Febrero 26, 2010, 11:06:57 PM
Alguna manera para lograr que al pulsar el boton enter,entrar en el menu de objetos(room1),seleccionar la pistola,y cambiar el sprite del personaje principal a sprite con pistola?
Si puedeis explicarlo de manera sencilla mejor,que soy novato.
Gracias de antemano
Título: Re: Cambiar sprite desde otra room
Publicado por: Hackware en Febrero 28, 2010, 03:32:51 AM
Dejame ver... ?Lo que tratas de decir es que has creado el menu de objetos en otra room? ?Es por eso que necesitas cambiar el sprite el prota desde la room del menu?

Intenta enlazando la varible sprite_index a una de tipo global de tu propia invenci?n. Cambiando la variable global desde la room del menu y actualizando el sprite_index desde el evento step del personaje deber?as obtener el resultado deseado.

En c?digo, en el evento en el que eliges la pistola define el valor de tu variable global inventada (global.prota_sprite, por ejemplo) al del sprite del prota con pistola, despu?s has que salga de la room del menu; en el evento Step del jugador agrega esta pieza de c?digo que se encargar? de mantener el sprite del jugador actualizado:

sprite_index=global.prota_sprite

Eso deber?a bastar... ?Saludos!
Título: Re: Cambiar sprite desde otra room
Publicado por: Shoto_reaper en Marzo 01, 2010, 02:59:54 PM
Buff,aun me cuesta acostumbrarme al GML.Podrias explicarmelo mas detalladamente por favor.Es que me pierdo al ser novato XD
Título: Re: Cambiar sprite desde otra room
Publicado por: Ciberman en Marzo 01, 2010, 04:11:21 PM
te traduzco lo de Hackware

Cuando haces click para que cambie la pistola

global.pj_pistolaSpr=spr_nombredelsprite


en el step del PJ

sprite_index=global.pj_pistolaSpr;


create del PJ:

sprite_index=spr_PJ_sinpistola;
global.pj_pistolaSpr=sprite_index;


y cuando quieras que el pj pierda la pistola pones

global.pj_pistolaSpr=spr_PJ_sinpistola;


osea, de ahora en m?s deberas usar la global.pj_pistolaSpr para indicar el sprite del PJ.

PD: hay otras maneras, probablemente mejores, pero si eres novato en el GML te aconsejo esta que es muy efectiva.
Título: Re: Cambiar sprite desde otra room
Publicado por: Shoto_reaper en Marzo 01, 2010, 07:47:22 PM
Ya funciona,muchas gracias.Aun asi si pudiera explicarme mas o menos lo que hace.Entiendo que si seleccionas el arma, el sprite principal del jugador cambie al de disparo...pero si pones en el evento create del jugador qu eel sprite principal cambie al normal sin pistola...al volver del menu a la room principal,el personaje no deberia estar sin pistola?O es que si tienes el modo persistent no se activa el evento Create?
Perdonad si os lio,pero es para aprender mejor todo esto
Título: Re: Cambiar sprite desde otra room
Publicado por: Hackware en Marzo 02, 2010, 06:55:11 PM
Eso mismo. Me alegra ver que lo hayas deducido tu solo. :)