2using System.Collections.Generic;
11 protected double t = 0;
30 this.Damping = damping;
35 return Math.Pow( Math.E, -
Damping *
t );
51 protected abstract void Apply();
59 public abstract void Stop();
72 : base( obj, f, phase, damping )
105 double angularFreq = 2 * Math.PI *
Frequency;
106 double k = Math.Pow( angularFreq, 2 ) * physObj.
Mass;
107 double force = -k * d;
109 double totalForce = force - dampingForce;
141 : base( obj, f, 0, damping )
143 this.Direction = Math.Sign( dir );
145 this.Center = obj.
Angle;
163 List<double>
lista =
new List<double>();
164 List<double>
lista2 =
new List<double>();
171 double d = Math.Cos(
W *
t +
Phase);
173 double torque = -k * d;
175 double totalTorque = torque - dampingTorque;
178 lista.Add(totalTorque);
Harmoninen värähtelijä pyörintäliikkeelle.
bool IsDynamic(IGameObject obj)
AngularOscillator(IGameObject obj, double dir, UnlimitedAngle a, double f, double damping)
double GetAngularVelocity()
UnlimitedAngle GetOffset()
Harmoninen värähtelijä akselin suhteen.
LinearOscillator(IGameObject obj, Vector axis, double a, double f, double phase, double damping)
bool IsDynamic(IGameObject obj)
void Destroy()
Tuhoaa kappaleen
Oscillator(IGameObject obj, double f, double phase, double damping)
void Update(Time time)
Päivitysfunktio
double GetDampingMultiplier()
Kappale joka noudattaa fysiikan lakeja, johon voi törmätä. Vaatii että käytössä on fysiikkapeli.
Rajapinta olioille, jotka ovat tuhottavissa.
Yhteinen rajapinta kaikille peliolioille.
Yhteinen rajapinta kaikille fysiikkaolioille.
void ApplyTorque(double torque)
new Vector Position
Paikka.
Rajapinta päivittyville olioille.
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
static Angle Sum(UnlimitedAngle a, Angle b)
Laskee yhteen rajoittamattoman ja rajoitetun kulman, palauttaen rajoitetun kulman.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
TimeSpan SinceLastUpdate
Aika joka on kulunut viime päivityksestä.
Rajoittamaton kulma (asteina ja radiaaneina). Tietoja kulmasta: http://en.wikipedia....
double Radians
Palauttaa tai asettaa kulman radiaaneina.
Vector Normalize()
Palauttaa uuden vektorin, jonka suunta pysyy samana, mutta pituudeksi tulee 1.0.
double ScalarProjection(Vector vector)
Skalaariprojektio annettuun vektoriin https://en.wikipedia.org/wiki/Scalar_projection