31 using System.Collections.Generic;
38 public partial class GameObject
70 public override void MoveTo(
Vector location,
double speed, Action doWhenArrived )
72 if ( moveTimer == null )
74 moveTimer =
new Timer();
76 moveTimer.Interval = 0.01;
78 else if ( moveTimer.Enabled )
82 moveTarget = location;
83 arrivedAction = doWhenArrived;
92 if ( moveTimer != null )
101 if ( !moveTarget.HasValue )
108 double vt = moveSpeed * moveTimer.Interval;
112 Vector targetLoc = moveTarget.Value;
117 if ( arrivedAction != null )
126 private void AssertOscillators()
128 if ( oscillators == null )
148 Waveform waveform = (
Waveform)Activator.CreateInstance( typeof( WaveForm ),
new object[] { amplitude, frequency, phase, damping } );
149 oscillators.
Add(
new LinearOscillator(
this, axis, waveform ) );
160 public void Oscillate(
Vector axis,
double amplitude,
double frequency,
double phase = 0,
double damping = 0 )
165 oscillators.
Add(
new LinearOscillator(
this, axis, waveform ) );
181 Waveform waveform = (
Waveform)Activator.CreateInstance( typeof( WaveForm ),
new object[] { amplitude.Radians, frequency, 0, damping } );
182 oscillators.
Add(
new AngularOscillator(
this, direction, waveform ) );
197 oscillators.
Add(
new AngularOscillator(
this, direction, waveform ) );
205 throw new NotImplementedException();
void ClearOscillations()
Poistaa kaikki v�r�htelyt kappaleelta.
double Magnitude
Vektorin pituus.
override void MoveTo(Vector location, double speed, Action doWhenArrived)
Yritt�� siirty� annettuun paikkaan annetulla nopeudella. Laukaisee annetun aliohjelman, kun paikkaan on p��sty.
Angle Angle
Kulma radiaaneina.
virtual void MoveToTarget()
void SetEquilibrium()
Asettaa uuden tasapainoaseman v�r�htelyille.
void OscillateAngle< WaveForm >(double direction, UnlimitedAngle amplitude, double frequency, double damping=0)
Laittaa kappaleen py�rim��n edestakaisin tietyn aaltomuodon mukaisesti. Aaltomuotoa voi vaihtaa tyyppip...
void Oscillate(Vector axis, double amplitude, double frequency, double phase=0, double damping=0)
Laittaa kappaleen liikkumaan edestakaisin nykyisen paikkansa ymp�rill� tietyn akselin suuntaisesti...
bool IsUpdated
Tarvitseeko olio päivittämistä. Kun perit oman luokkasi tästä luokasta, aseta tämä arvoon true...
virtual void Move(Vector movement)
Siirt�� oliota.
void Oscillate< WaveForm >(Vector axis, double amplitude, double frequency, double phase=0, double damping=0)
Laittaa kappaleen liikkumaan edestakaisin nykyisen paikkansa ymp�rill� tietyn akselin suuntaisesti...
virtual void Stop()
Pys�ytt�� kaiken liikkeen.
Ajastin, joka voidaan asettaa laukaisemaan tapahtumia tietyin väliajoin.
Rajoittamaton kulma (asteina ja radiaaneina). Tietoja kulmasta: http://en.wikipedia.org/wiki/File:Degree-Radian_Conversion.svg
void OscillateAngle(double direction, UnlimitedAngle amplitude, double frequency, double damping=0)
Laittaa kappaleen py�rim��n edestakaisin.
Vector AbsolutePosition
Olion absoluuttinen paikka pelimaailmassa. Jos olio ei ole minkään toisen peliolion lapsiolio...
double Radians
Palauttaa tai asettaa kulman radiaaneina.
virtual Vector Position
Olion paikka. Jos olio on jonkun toisen peliolion lapsi, paikka on suhteessa tämän vanhempaan (Parent...
void StopMoveTo()
Pys�ytt�� MoveTo-aliohjelmalla aloitetun liikkeen.