private ExplosionTest() { //Ground World.CreateEdge(new Vector2(-40.0f, 0.0f), new Vector2(40.0f, 0.0f)); float[] xs = new[] { -10.0f, -5.0f, 0.0f, 5.0f, 10.0f }; for (int j = 0; j < ColumnCount; ++j) { PolygonShape shape = new PolygonShape(1); shape.Vertices = PolygonTools.CreateRectangle(0.5f, 0.5f); for (int i = 0; i < RowCount; ++i) { int n = j * RowCount + i; Debug.Assert(n < RowCount * ColumnCount); _indices[n] = n; const float x = 0.0f; Body body = World.CreateBody(); body.BodyType = BodyType.Dynamic; body.Position = new Vector2(xs[j] + x, 0.752f + 1.54f * i); body.Tag = _indices[n]; _bodies[n] = body; Fixture fixture = body.CreateFixture(shape); fixture.Friction = 0.3f; //First column is unaffected by the explosion if (j == 0) { body.ControllerFilter.IgnoreController(_realExplosionCategory); } } } _radius = 5; _force = 3; _realExplosion = new RealExplosion(World); _realExplosion.ControllerCategory = _realExplosionCategory; }
private ExplosionTest() { //Ground BodyFactory.CreateEdge(World, new Vector2(-40.0f, 0.0f), new Vector2(40.0f, 0.0f)); float[] xs = { -10.0f, -5.0f, 0.0f, 5.0f, 10.0f }; for (int j = 0; j < ColumnCount; ++j) { PolygonShape shape = new PolygonShape(1); shape.Vertices = PolygonUtils.CreateRectangle(0.5f, 0.5f); for (int i = 0; i < RowCount; ++i) { int n = j * RowCount + i; Debug.Assert(n < RowCount * ColumnCount); _indices[n] = n; const float x = 0.0f; Body body = BodyFactory.CreateBody(World); body.BodyType = BodyType.Dynamic; body.Position = new Vector2(xs[j] + x, 0.752f + 1.54f * i); body.UserData = _indices[n]; _bodies[n] = body; Fixture fixture = body.CreateFixture(shape); fixture.Friction = 0.3f; //First column is unaffected by the explosion if (j == 0) { body.PhysicsLogicFilter.IgnorePhysicsLogic(PhysicsLogicType.Explosion); } } } _radius = 5; _force = 3; _realExplosion = new RealExplosion(World); }
private ExplosionTest() { //Ground BodyFactory.CreateEdge(World, new Vector2(-40.0f, 0.0f), new Vector2(40.0f, 0.0f)); float[] xs = new[] { -10.0f, -5.0f, 0.0f, 5.0f, 10.0f }; for (int j = 0; j < ColumnCount; ++j) { PolygonShape shape = new PolygonShape(1); shape.Vertices = PolygonTools.CreateRectangle(0.5f, 0.5f); for (int i = 0; i < RowCount; ++i) { int n = j * RowCount + i; Debug.Assert(n < RowCount * ColumnCount); _indices[n] = n; const float x = 0.0f; Body body = BodyFactory.CreateBody(World); body.BodyType = BodyType.Dynamic; body.Position = new Vector2(xs[j] + x, 0.752f + 1.54f * i); body.UserData = _indices[n]; _bodies[n] = body; Fixture fixture = body.CreateFixture(shape); fixture.Friction = 0.3f; //First column is unaffected by the explosion if (j == 0) { body.PhysicsLogicFilter.IgnorePhysicsLogic(PhysicsLogicType.Explosion); } } } _radius = 5; _force = 3; _realExplosion = new RealExplosion(World); }