示例#1
0
        public void RelativeToWorldVector()
        {
            var pos      = new coordinates(2d, -math.PI_DBL / 2d);
            var v_polar  = new double2(-2d, -2d);
            var expected = new coordinates(2d, math.PI_DBL);
            var actual   = pos.Update(v_polar);

            Assert.AreEqual(expected.r, actual.r, tolerance);
            Assert.AreEqual(
                angle.wrap(expected.theta.radians),
                angle.wrap(actual.theta.radians),
                tolerance
                );
        }
示例#2
0
 public override void Update(GameTime gameTime)
 {
     if (crd.isFlight)
     {
         float time = (float)gameTime.ElapsedGameTime.Ticks / 100000;
         EngineSpark(time);
         crd.Update(time);
     }
     for (int particle = 0; particle < particles.Count; particle++)
     {
         particles[particle].Update(gameTime);
         if (particles[particle].Size <= 0 || particles[particle].TTL <= 0 ||
             particles[particle].Position.X <crd.xBoard ||
                                             particles[particle].Position.Y> crd.yBoard)
         {
             particles.RemoveAt(particle);
             particle--;
         }
     }
 }