Ejemplo n.º 1
0
 public Force(SpeedTracker tracker, float accelleration, float angle, TimeSpan?duration = null) : base(tracker.MyThing)
 {
     this.Accelleration = accelleration;
     this.Angle         = angle;
     this.tracker       = tracker;
     this.Duration      = duration.HasValue ? duration.Value : TimeSpan.Zero;
 }
Ejemplo n.º 2
0
 public Force(SpeedTracker tracker, float accelleration, float angle, TimeSpan?duration = null) : base(tracker.Element)
 {
     this.Accelleration = accelleration;
     this.Angle         = angle;
     this.tracker       = tracker ?? throw new ArgumentNullException();
     this.Duration      = duration.HasValue ? duration.Value : TimeSpan.Zero;
 }
Ejemplo n.º 3
0
        public Force(SpeedTracker tracker, float accelleration, float angle, TimeSpan?duration = null) : base(tracker.Element)
        {
            this.Accelleration = accelleration;
            this.Angle         = angle;
            this.tracker       = tracker ?? throw new ArgumentNullException();
            this.Duration      = duration.HasValue ? duration.Value : TimeSpan.Zero;

            if (Duration < TimeSpan.Zero)
            {
                this.IsPermanentForce = true;
            }
            else
            {
                this.EndTime = Time.CurrentTime.Now + Duration;
            }

            if (Duration == TimeSpan.Zero)
            {
                float dx, dy;
                CalculateSpeedDeltas(Accelleration, out dx, out dy);
                tracker.SpeedX += dx;
                tracker.SpeedY += dy;
                this.Lifetime.Dispose();
            }
        }
Ejemplo n.º 4
0
 public Seeker(Thing seeker, Thing seekee, SpeedTracker seekerSpeed, float accelleration) : base(seeker)
 {
     this.Seekee        = seekee;
     this.SeekerSpeed   = seekerSpeed;
     this.accelleration = accelleration;
     Governor.Rate      = TimeSpan.FromSeconds(.1);
     Seekee.Removed.SubscribeForLifetime(() => { Scene.Remove(this); }, this.LifetimeManager);
 }
Ejemplo n.º 5
0
 public Seeker(SpacialElement seeker, SpacialElement seekee, SpeedTracker seekerSpeed, float accelleration) : base(seeker)
 {
     this.Seekee        = seekee;
     this.SeekerSpeed   = seekerSpeed;
     this.accelleration = accelleration;
     IsSeeking          = true;
     Governor.Rate      = TimeSpan.FromSeconds(.1);
     Seekee.Lifetime.OnDisposed(() => { this.Lifetime.Dispose(); });
 }
Ejemplo n.º 6
0
        public Roamer(SpacialElement roamer, SpeedTracker roamerSpeed, float accelleration) : base(roamer)
        {
            this.RoamerSpeed   = roamerSpeed;
            this.accelleration = accelleration;
            Governor.Rate      = TimeSpan.FromSeconds(.1);

            if (IsRoaming)
            {
                currentForce = new Force(RoamerSpeed, accelleration, NextAngle());
            }
        }
Ejemplo n.º 7
0
 public Roamer(SpacialElement roamer, SpeedTracker roamerSpeed, float accelleration) : base(roamer)
 {
     this.RoamerSpeed   = roamerSpeed;
     this.accelleration = accelleration;
     Governor.Rate      = TimeSpan.FromSeconds(.1);
 }
Ejemplo n.º 8
0
 public Floater(SpacialElement t, SpeedTracker tracker, float maxFloat = 1) : base(t)
 {
     this.MaxFloat      = maxFloat;
     this.Governor.Rate = TimeSpan.FromSeconds(.03);
     this.tracker       = tracker;
 }
Ejemplo n.º 9
0
 private void CalculateSpeedDeltas(float dSpeed, out float dx, out float dy)
 {
     SpeedTracker.FindEdgesGivenHyp(dSpeed, Angle, out dx, out dy);
 }
Ejemplo n.º 10
0
 public Gravity(SpeedTracker tr) : base(tr, 32, 90, TimeSpan.FromSeconds(-1))
 {
 }