Buenas de nuevo.
Tengo una nave la cual quier que genere diversos sonidos en pos de su velocidad.
STEP EVENT
- Si la velocidad es 0: no hace nada.
- Si la velocidad es mayor de 8 "es lo maximo que le puse": carga el sonido de aceleracion "es un loop".
- Si la velocidad es menor de 2: el loop de aceleración se para, y meto un sonido de "desaceleración" que dura un segundo.
Cómo puedo hacer para que el loop de aceleración no se cargue indefinidamente mientras la velocidad es máxima.
Cómo detecto que la velocidad "decrece" y que no "aumenta", para poder cargar el otro sonido de un solo segundo. Y a su vez, cómo hago para que no se siga reproduciendo más de una vez.
Mi mayor problema reside en no poder controlar las repeticiones de estas acciones en el step event.
¿Y qué pasa cuando la velocidad está entre 2 y 8?
¿Cómo se consigue acelerar y desacelerar la nave?
Fran creo que lo que buscas puede ser if speed<5 and speed>2 eso crearía una tolerancia el comando break rompe bucles también audio stop audio_stop_sound(tu sonido); espero aberte servido de ayuda
Aclaro un poco con el código, la nave se mueve simplemente desplazando el mouse(Pero no esta fijada al mouse), si el mouse se aleja a cierta distancia aumenta la speed hasta un límite de 8.
sonidos_scr(5); <---- llama a un script con los diversos sonidos.
if speed=0{vuelo=false} //--desactivo la fase vuelo
if speed>2{vuelo=true} //--activo la fase vuelo
if vuelo = true{
sonidos_scr(5); //-- carga un sonido loop que se mantiene todo el rato que la nave vuele
}
if vuelo = false{
sonidos_scr(3) //-- cargo un sonido de pérdida de velocidad que dura un segundo
audio_stop_sound(nave_snd); // aquí paro el loop " sonidos_scr(5)"
}
ay solo pone la velocidad menor de dos tienes que testtear mas la velocidad y no solo poner true o false
Sí, petpan, le he estado dando vueltas durante horas. El caso es que no sé como "testear" que la velocidad "sube" o "baja".
Puedo detectar un valor, pero no se como hacerlo si va subiendo, o esta bajando.
Por cierto gracias por vuestras respuestas.
detallando mas los limites osea mas trabajo si sube de 1 a 20
pues >1
>5
>10
>15
>20
<5
<10
ect
En CREATE de la nave pones
v_actual = vspeed (o la velocidad que uses para avanzar/retroceder)
ac_actual = 0 //variable que indica el signo de la aceleración
en STEP
if (v_actual != vspeed) //Existe aceleración (cambio de velocidad)
{
v_actual = vspeed // //Actualizar el valor de v_actual
if (v_actual < vspeed) //Aceleración positiva
{
ac_actual = 1 // 1 significa que la velocidad aumenta
}
if (v_actual > vspeed) //Aceleración negativa
{
ac_actual = -1 // -1 significa que la velocidad disminuye
}
}
else // No hay cambio de velocidad (cuando la nave va a su velocidad máxima)
ac_actual = 0
if (ac_actual > 0)
{
//Cosas a realizar cuando la aceleración es positiva
}
else
{
//cosas a realizar cuando la aceleración es negativa
}
if (ac_actual == 0)
{
//Cosas a realizar cuando la nave viaja a velocidad constante
}
Penumbra, te quier...digo Gracias!