Example #1
0
        public void updateForce(Particlef particle, float duration)
        {
            _durationAcc += duration;

            /*
             * if (Keyboard.IsKeyDown(Key.D) || Keyboard.IsKeyDown(Key.Right)) {
             *  particle.addForce(new Vec3f(1000.0f, 0.0f, 0.0f));
             * }
             *
             * if (Keyboard.IsKeyDown(Key.A) || Keyboard.IsKeyDown(Key.Left)) {
             *  particle.addForce(new Vec3f(-1000.0f, 0.0f, 0.0f));
             * }
             *
             * if (Keyboard.IsKeyDown(Key.Space)) {
             *  if (!_wasForced && _durationAcc > 0.5f) {
             *      particle.addForce(new Vec3f(0.0f, -200000.0f, 0.0f));
             *      _wasForced = true;
             *      _durationAcc = 0.0f;
             *  }
             * }
             * else {
             *  _wasForced = false;
             * }
             */
        }
Example #2
0
        public void add(Particlef particle, IParticleForceGenerator forceGenerator)
        {
            ParticleForceRegistration registration = new ParticleForceRegistration();

            registration.particle       = particle;
            registration.forceGenerator = forceGenerator;
            registrations.Add(registration);
        }
Example #3
0
        public void updateForce(Particlef particle, float duration)
        {
            if (!particle.hasFiniteMass())
            {
                return;
            }

            particle.addForce(gravity * particle.Mass);
        }
Example #4
0
 public void remove(Particlef particle, IParticleForceGenerator forceGenerator)
 {
     foreach (ParticleForceRegistration i in registrations)
     {
         if (i.particle == particle && i.forceGenerator == forceGenerator)
         {
             registrations.Remove(i);
             return;
         }
     }
 }