Alguien experto que me ayude con una ecuación?

Iniciado por gonzalitosk8, 11 Junio 2015, 16:46 PM

0 Miembros y 1 Visitante están viendo este tema.

gonzalitosk8

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:

Código (csharp) [Seleccionar]
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:

Código (csharp) [Seleccionar]
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

El Benjo

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:

Código (csharp) [Seleccionar]
LowSource.volume = dt.rpm * 0.0004f;

Espero que te sirva de algo, saludos.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.