Tengo un switch que me pone un grafico segun la x del personaje de mi avatar...
segun un grafico u otro quiero que me suene un .wav solo una vez dentro de un loop...
''mexplico'' con un ''jemplo''
[code language="bennu"]
switch (father.x)
case 50..100: graph 100; play_wav(crash_1,0); end
case 100..150: graph 101; play_wav(crash_2,0); end
case 150..200: graph 102; play_wav(crash_3,0); end
end
[/code]
se ve facil y que no falla ¿no?
pues cuando el personaje entre en x entre 50 y 100 debe de sonar una vez, pero como el case sigue valiendo entre 50 y 100 sigue sonando. Pues eso es lo que pregunto, que como hago pa que no suene; si pongo stop_wav(0) no me furula ¿hay que ponerle otro valor en el parentesis??
usa una variable control ... o 3 xD asi .. a ver si funciona:
switch (father.x)
case 50..100:
graph=100;
if(variable_control1==0)
play_wav(crash_1,0);
variable_control1=1;
end
end
Y asi en cada case con una variable distinta xD porq si vuelves a ponerle el valor 0 a la variable dentro del case no parara de sonar el wav. xD espero te sirva .. aunq esta manera no creo q sea mu eficiente xD
ya lo tengo, cada vez que haya un case nuevo pongo a true una variable que a parte si es true suena el sonido y se pone a false...
la probaré a ver que pasa
ya tienes tu primer karma
esq el switch lo estaras ejecutando continuamente no? o esta dentro de un if o algo q haga q solo se evalue una vez? por eso te dije lo de 3 variables xD
está dentro del loop para comprobarlo a cada momento, lo que digo yo tampoco vale porque cada vez que comprueba si permanece en la misma x o dentro que un rango de x vuelve a sonar y sonar
voy a probar con un contador de alguna manera que cuando vale 1 suena y que siga contando y por eso no suene; el problema es que a ver cuando lo pongo a 0...
Pues en ese caso tienes que hacer como con KEY: comprobar el cambio de estado, es decir, tener una variable que te diga el valor del frame anterior, y comprobar si estaba fuera de los límites (father.x_ant < 50 OR farher.x_ant > 100) o bien si has cambiado de gráfico (if graph_anterior != 100) antes de volver a reproducir.
O usar el truco de incrementar una variable mientras estés en ese caso, o que valga cero cuando no lo estás, y hacer que se reproduzca el sonido sólo cuando valga 1.
eso ultimo se me petaba de una forma mu rara, pero no es mala idea la anterior...
Acuérdate de hacer un IS_PLAYING_WAV antes de pararlo, por si acaso ;)