Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Ketzergon en Mayo 02, 2012, 09:51:56 AM

Título: Hacer que un objeto se quede inmóvil por un rato
Publicado por: Ketzergon en Mayo 02, 2012, 09:51:56 AM
Bueno sigo haciendo mis intentos por crear mi primer juego y me topé con otro problema.

Tengo un objeto (personaje) que muevo con las teclas derecha e izquierda (se mueve como el avión en el tutorial de scrolling shooters, de ahí lo copié).

Ahora tengo otro objeto, quiero que al hacer colisión con mi personaje, este se deje de mover (quede congelado) unos 3 segundos y después recupere el movimiento.

También necesito que cuando el objeto colisione con el personaje cambie de sprite (el personaje) por el tiempo en que no se pueda mover y al pasar ese tiempo, vuelva a cambiar de sprite al original.

Sería genial si me pudieran ayudar a hacer esto con drag & drop, pero me arriesgaría a empezar con el código del GM si es que es más fácil  ??? :S
Título: Re:Hacer que un objeto se quede inmóvil por un rato
Publicado por: Mgbu en Mayo 02, 2012, 06:20:43 PM
Bueno, yo miraría el código porque no hice el tutorial y no se como funciona  :-[

Al chocar podés hacer que una variable "frenado" por ejemplo se tome el valor 1 y una alarma a un determinado tiempo
En la alarma pones la variable de nuevo en 0
Y en la parte del código que hace que se mueva agregarle una condición de que frenado sea 0, no se si entiendes :-[

Para cambiar el sprite tendrías que usar el "Change Sprite" cuando colisiones, y también en la alarma que se ponga el original de la misma manera
Título: Re:Hacer que un objeto se quede inmóvil por un rato
Publicado por: VideoGamer en Mayo 02, 2012, 07:59:52 PM
segun yo con drag&drop seria asi:
en create pones una variable llamada "moverse" y le pones que sea igual a "false"
en las flechas donde se mueve pones hasta arriba una condicion de que si "moverse" es "true" y pones el cuadrito con la x roja para que se salga
en el evento de colision de tu personaje con el otro objeto pones que cambie sprite por el otro que quieres; pones una alarma del tiempo que es para que no se mueva y pones una variable que cambie "moverse" a "true"
y en la alarma cuando se acabe que cambie otra vez al sprite normal y que "moverse" sea false

si no entiendes algo dime y te lo explico de una manera diferente :)
Título: Re:Hacer que un objeto se quede inmóvil por un rato
Publicado por: Mgbu en Mayo 02, 2012, 11:04:46 PM
Está bien, creo que te confundiste con true y false, sería así

Citaren create pones una variable llamada "moverse" y le pones que sea igual a "true" (porque apenas empieza el juego se puede mover)
en las flechas donde se mueve pones hasta arriba una condicion de que si "moverse" es "true" y pones el cuadrito con la x roja para que se salga (cuando no te podés mover, pones la X para que na haga nada)
en el evento de colision de tu personaje con el otro objeto pones que cambie sprite por el otro que quieres; pones una alarma del tiempo que es para que no se mueva y pones una variable que cambie "moverse" a "false" (Cuando choca no se puede mover más)
y en la alarma cuando se acabe que cambie otra vez al sprite normal y que "moverse" sea true (Después del tiempo se puede volver a mover)

Ahora que modifiqué todo y lo veo más detenidamente me di cuenta que pusiste todos al revés, es decir hubiera funcionado, podés hacerlo de la forma que habías dicho antes pero a la variable le hubiera puesto de nombre "frenado"
Título: Re:Hacer que un objeto se quede inmóvil por un rato
Publicado por: VideoGamer en Mayo 03, 2012, 12:08:06 AM
corregido podría quedar así:

en create pones una variable llamada "detener" y le pones que sea igual a "false"

en las flechas donde se mueve pones hasta arriba de todos los cuadritos una condicion de que si "detener" es "true" y pones el cuadrito con la X roja para que se salga.

en el evento de colision de tu personaje con el otro objeto pones que cambie sprite por el otro que quieres; pones una alarma del tiempo que es para que no se mueva y pones una variable que cambie "detener" a "true"

y en la alarma cuando se acabe que cambie otra vez al sprite normal y que "detener" sea false


según yo, no me confundí, solo que puse moverse y lo usaba alreves, pero siguiéndolo como lo puse debería funcionar.
Título: Re:Hacer que un objeto se quede inmóvil por un rato
Publicado por: Mgbu en Mayo 03, 2012, 12:46:14 AM
Si, sí como quieras, pero probalo! XD
Título: Re:Hacer que un objeto se quede inmóvil por un rato
Publicado por: Ketzergon en Mayo 04, 2012, 08:23:48 AM
Muchas gracias por responder, pero algo estoy haciendo mal porque no me sale la cosa.

Hago los pasos que me indican pero nada, miren:

                                        1.

(http://i473.photobucket.com/albums/rr99/ketzergon/1.png)

                                        2. (lo hago para la flecha hacia la izquierda y hacia la derecha también, espero que esa sea la "X" roja a la que se refieren, jeje)

(http://i473.photobucket.com/albums/rr99/ketzergon/2-1.png)

                                        3.

(http://i473.photobucket.com/albums/rr99/ketzergon/3-1.png)

                                        4.

(http://i473.photobucket.com/albums/rr99/ketzergon/4-1.png)

Por favor ayuda a ver que estoy haciendo mal.
Título: Re:Hacer que un objeto se quede inmóvil por un rato
Publicado por: Mgbu en Mayo 04, 2012, 12:04:09 PM
Me parece que estas haciendo un poco en cada objeto.
Creaste la variable e impediste que se mueva en obj_pelusa
Pero hiciste la alarm y el cambio de sprite en el otro objeto
Para hacer las cosas como queres (que se quede quieto la pelusa y cambiar sprite de meteorito) en cada objeto tiene que estar el create  y la alarm

Tambien en el evento alarm tenés que poner Detener a falsa y el sprite original

Algo mas: en el create pone detener a false o se va a quedar quieto siempre