Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: roberbtr en Abril 25, 2015, 10:55:43 AM

Título: Desactivar controles cuando hace una accion para no hacer varias
Publicado por: roberbtr en Abril 25, 2015, 10:55:43 AM
Hola buenas tengo un juego android con los controles en la pantalla quiero que cuando pinche la accion lanzar kamehame por ejemplo, el personaje no se pueda mover ni hacer otra accion, e probajo a eliminar el objeto controles que es donde salen los botones pero aun desapareciendo si pinchas donde estaban se sigue moviendo al jugador... nose como hacer para que cuando haga determinadas acciones asta que no termine no puedas seguir moviendolo.
Título: Re:Desactivar controles cuando hace una accion para no hacer varias
Publicado por: petpan13 en Abril 25, 2015, 07:25:07 PM
Puedes desactivar instancia y después activarla o destruirla y si no existe crearla eso ahorra recursos bueno no m extiendo q escribo desde del móvil. Saludos
Título: Re:Desactivar controles cuando hace una accion para no hacer varias
Publicado por: penumbra en Abril 25, 2015, 08:15:32 PM
Cita de: roberbtr en Abril 25, 2015, 10:55:43 AM
nose como hacer para que cuando haga determinadas acciones asta que no termine no puedas seguir moviendolo.
Eso en esencia es implementar un tiempo de espera, algunos le llaman "cooldown". Generalmente se hace con alarmas, pero como en este caso, hay una animación de por medio.(la animación del poder kamehameha), hay mejores alternativas que usar alarmas. Imagina que tienes una variable "kamehameha" que vale 1 cuando el personaje ejecuta ese poder, y que vale 0 cuando no lo está ejecutando.

A este tipo de variables se les suele llamar banderas, porque sirven como una señal (bandera) para indicar si una acción o estado está ocurriendo o no. Esa variable "kamehameha" la puedes usar como bandera, de modo que si vale 1, el jugador no pueda caminar, y sólo pueda caminar cuando su valor sea 0.

Eso quiere decir que la variable "kamehameha" en algún momento tiene que pasar a ser 1, pero no puede quedarse en 1, sino que temporalmente sería 1, y después de cierto tiempo volvería a ser 0. Yo sugeriría que kamehameha se haga 0 en el evento ANIMATION END (cuando termina la animación del kamehameha) porque esto es más preciso que usar una alarma.