Hola tengo un objeto "Jugador" y un objeto "Enemigo" al colisionar se setea la variable global.battle a 2 haciendo que el jugador realize animaciones de batalla al igual que el enemigo, el enemigo tiene una accion "set variable life = 50" en el evento create, mi pregunta es como hacer que el enemigo pierda vida cada x tiempo por que si pongo algo como life -=13 muere en 0.000003 segundos y no es la idea, sesupone que hay que definir una "velocidad de ataque" como ago para que alla un retardo entre cada life -= ???
CREATE
restar_vida = 1
STEP
if (restar_vida)
{
life -= 13
restar_vida = 0 // impedir hacer más daño...
alarm[0] = room_speed * 2 //... durante los dos próximos segundos
}
ALARM[0]
restar_vida = 1 // Es posible hacer daño nuevamente
En realidad lo mejor es ejecutar la alarma bajo una condición:
if (alarm[0] < 0) {
alarm[0] = romm_speed * 2
}
De esta forma nos aseguramos que siempre se ejecute la alarma, de lo contrario, si la alarma ya tiene algún valor no se va a volver a ejecutar.
No siempre se requiere que la alarma se ejecute recursivamente. En el caso de atacar con un arma, la alarma reacciona al ataque, Si se vuelve a atacar. la alarma se ejecuta, si no se ataca de nuevo, no tendría caso que la alarma siguiera corriendo una y otra vez.
Por supuesto que hay casos en los que sí se necesita que la alarma se ejecute una y otra vez
Cita de: Iros en Febrero 11, 2014, 10:16:08 PM
if (alarm[0] < 0) {
alarm[0] = romm_speed * 2
}
Se puede hacer lo mismo ahorrándose el if, ajustando la alarma en su propio evento ALARM
alarm[0] = room_speed * 2
Que tiene el mismo efecto, re-activar la alarma
jeje gracias a los 2 hay veo como adaptar eso a mi codigo son geniales muchas gracias :D