public ContactDemo(Image image) : base(image) { Settings.ContactIteration = 1; const int num = 5; for (int i = 0; i < num; i++) { var fB = PhysicsWorld.CreateFixedParticle((new Vector2D(160 + 40 * i, 0)).ToSimUnits()); var pB = PhysicsWorld.CreateParticle((new Vector2D(160 + 40 * i, 200)).ToSimUnits(), new Vector2D(0, 0), 2); var ball = new Ball { FixedParticle = fB, Particle = pB, R = 20 }; // 为质体绑定形状 ball.Particle.BindShape(new Circle(ball.R.ToSimUnits())); PhysicsWorld.CreateRope(200.ToSimUnits(), 0, fB, pB); DrawQueue.Add(ball); _ballList.Add(ball); } // 增加重力和空气阻力 PhysicsWorld.CreateGlobalZone(new ParticleGravity(new Vector2D(0, 40))); PhysicsWorld.CreateParticle(Vector2D.Zero, new Vector2D(1, 0), 1); Slot = 1 / 120.0; Start = true; }