Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: unbleached en Abril 05, 2011, 05:38:24 PM

Título: problema con alarma(solucionado)
Publicado por: unbleached en Abril 05, 2011, 05:38:24 PM
vereis....mis enemigos llevan un camo de vision....y una variable en el create que se llama alerta=0....la idea es que cuando el protagonista toque el campo de vision del enemigo la variable alerta=0 pasa a alerta=1....hasta aqui todo bien...cuando el prota esta tocando lel campo de vision la variable alerta es 1 y cuando no es 0....pero habia pensado en que cuando el protagonista saliera del campo de vision todavia pasara un rato en que la alerta sigue siendo 1 y al pasar ese rato la alerta seria 0...os dejo el codigo que uso

en el create del enemigo
[gml]alerta=0[/gml]

en el step del enemigo
[gml]if collision_point(soldado_01.x,soldado_01.y,cv2,1,1) {alerta=1} else alarm[0]=100;

if alerta=1 {
mp_potential_settings(1,1,1,1)
mp_potential_step(soldado_01.x,soldado_01.y,1,0)
};[/gml]

en la alarm 0
[gml]alerta=0[/gml]

pero asi no funciona y lo he intetado de mil maneras :'(
Título: Re: problema con alarma
Publicado por: Metal Mario en Abril 05, 2011, 06:03:28 PM
No cambia mucho lo que te voy a decir pero, en tu jugador, en evento colision con el objeto campo de vision, pon esto:
[gml]with object0 alarm[0] = 200[/gml]
object0 cambialo por el campo de vision, 200 cambialo por un numero que quieras.
Trata con esto.
Título: Re: problema con alarma
Publicado por: unbleached en Abril 05, 2011, 06:58:49 PM
sigo sin dar con la solucion.Pero gracias igualmente.
Título: Re: problema con alarma
Publicado por: licshendu en Abril 05, 2011, 07:25:41 PM
aqui el problema es que como estas ejecutando
[gml]alarm[0]=100;[/gml]
en el evento step, esto hace que en cada paso se restablesca alarm[0] a 100 y por lo tanto nunca llegara a 0, y por lo tanto a ejecutar el codigo que contiene. Lo que puedes hacer es usar una variable para que solo se ejecute esa accion una vez y ya quedaria
[gml]if collision_point(soldado_01.x,soldado_01.y,cv2,1,1) {alerta=1;aux=false}
else if aux= false{ alarm[0]=100; aux=true}

if alerta=1 {
mp_potential_settings(1,1,1,1)
mp_potential_step(soldado_01.x,soldado_01.y,1,0)
};[/gml]
Título: Re: problema con alarma
Publicado por: Metal Mario en Abril 05, 2011, 07:30:31 PM
No, haber si funciona.
Lo del evento step, cambialo por colision event (con el objeto campo de vision), y quita if collision point. Y ya despues el  resto:
[gml]
alerta=1
if not collision_point(soldado_01.x,soldado_01.y,cv2,1,1)
alarm[0]=100
[/gml]
Y en step dejas esto:
[gml]if alerta=1
{
mp_potential_settings(1,1,1,1)
mp_potential_step(soldado_01.x,soldado_01.y,1,0)
};[/gml]
O al menos en create event pusiste alerta = 0 o algo asi
Título: Re: problema con alarma
Publicado por: unbleached en Abril 05, 2011, 07:48:32 PM
mil gracias a ls dos...al final lo hice como dice Licshendu...declarando la variable aux en el create.....mil gracias....solucionadisimo  ;)
Título: Re: problema con alarma(solucionado)
Publicado por: Metal Mario en Abril 05, 2011, 07:49:50 PM
Ouch, lo intente. :(
Título: Re: problema con alarma(solucionado)
Publicado por: unbleached en Abril 05, 2011, 08:22:30 PM
mil gracias Metal Mario....tus respuestas tambien me ayudaron mucho para entender un poquito mas todo esto  8) 8)