Buenos días! espero que estén todos muy bien! paso a comentar lo que quiero hacer, pero no puedo plasmarlo!
estoy tratando de hacer un sonido del motor de un auto en c#, con sus respectivos sonidos básicos (low, mid, high y offlow, offmid, offhigh)
pude construir algo muy básico.
ejemplo de lo que tengo:
if(dt.rpm > 800){ // las revoluciones del motor
float factor=drivetrain.rpm/drivetrain.maxRPM;
{if (!LowSource.isPlaying) LowSource.Play();}
LowSource.volume = 0.1f;
LowSource.pitch= 0.1f + LowPitchFactor*factor+0.15f;
}
como puse en ese guion, lo tengo hecho 10 veces por cada audio (low, mid, high)
para que en cada uno, el volumen aumente 0.1 llegando a la rpm que le marque.
osea:
if(dt.rpm > 1200){
LowSource.volume = 0.2f;
}
if(dt.rpm > 1500){
LowSource.volume = 0.3f;
}
y asi sucecivamente hasta llega a el volumen maximo..
mi pregunta seria, como puedo hacer para que el sonido del motor aumente suavemente entre dos floats?
ejemplo
float minimo = 1000, el volumen seria 0
float maximo = 3500, el volumen seria 1
entre esos dos floats el volumen comience a aumentar de 0 a 1 suave!
Mod: Los códigos dene llevar Etiquetas GeSHi, movido a .net
Lo que puedes hacer es una relación entre ambos valores, es decir:
maximo - minimo = 1000 - 3500 = 2500 y después la diferencia entre tus valores 0 y 1, o sea:
1 - 0 = 1 y sacas la relación 1 / 2500 = 0.0004
De esta manera, en vez de los 'if' utilices algo como:
LowSource.volume = dt.rpm * 0.0004f;
Espero que te sirva de algo, saludos.