public Test() { m_destructionListener = new DestructionListener(); m_debugDraw = new CCBox2dDraw("fonts/arial-12", 1); b2Vec2 gravity = new b2Vec2(); gravity.Set(0.0f, -10.0f); m_world = new b2World(gravity); m_bomb = null; m_textLine = 30; m_mouseJoint = null; m_pointCount = 0; m_destructionListener.test = this; m_world.SetDestructionListener(m_destructionListener); m_world.SetContactListener(this); m_world.SetDebugDraw(m_debugDraw); m_world.SetContinuousPhysics(true); m_world.SetWarmStarting(true); m_bombSpawning = false; m_stepCount = 0; b2BodyDef bodyDef = new b2BodyDef(); m_groundBody = m_world.CreateBody(bodyDef); }
public b2World N2b2World(JObject worldValue) { b2World world = new b2World(jsonToVec("gravity", worldValue)); world.SetAllowSleeping((bool)worldValue.GetValue("allowSleep")); world.ClearForces(); //world.Set(worldValue.getBoolean("autoClearForces")); world.SetWarmStarting((bool)worldValue.GetValue("warmStarting")); world.SetContinuousPhysics((bool)worldValue.GetValue("continuousPhysics")); world.SetSubStepping((bool)worldValue.GetValue("subStepping")); readCustomPropertiesFromJson(world, worldValue); int i = 0; JArray bodyValues = (JArray)worldValue["body"]; if (null != bodyValues) { int numBodyValues = bodyValues.Count; for (i = 0; i < numBodyValues; i++) { JObject bodyValue = (JObject)bodyValues[i]; b2Body body = N2b2Body(world, bodyValue); readCustomPropertiesFromJson(body, bodyValue); m_bodies.Add(body); m_indexToBodyMap.Add(i, body); } } // need two passes for joints because gear joints reference other joints JArray jointValues = (JArray)worldValue["joint"]; if (null != jointValues) { int numJointValues = jointValues.Count; for (i = 0; i < numJointValues; i++) { JObject jointValue = (JObject)jointValues[i]; if (jointValue["type"].ToString() != "gear") { b2Joint joint = j2b2Joint(world, jointValue); readCustomPropertiesFromJson(joint, jointValue); m_joints.Add(joint); } } for (i = 0; i < numJointValues; i++) { JObject jointValue = (JObject)jointValues[i]; if (jointValue["type"].ToString() == "gear") { b2Joint joint = j2b2Joint(world, jointValue); readCustomPropertiesFromJson(joint, jointValue); m_joints.Add(joint); } } } i = 0; JArray imageValues = (JArray)worldValue["image"]; if (null != imageValues) { int numImageValues = imageValues.Count; for (i = 0; i < numImageValues; i++) { JObject imageValue = (JObject)imageValues[i]; Nb2dJsonImage image = j2b2dJsonImage(imageValue); readCustomPropertiesFromJson(image, imageValue); m_images.Add(image); } } return world; }
public Mouse() { //m_destructionListener = new DestructionListener(); m_debugDraw = new CCBox2dDraw("fonts/arial-16"); b2Vec2 gravity = new b2Vec2(); gravity.Set(500, 500); m_world = new b2World(gravity); m_world.SetAllowSleeping(false); m_world.SetContinuousPhysics(true); m_world.SetDebugDraw(m_debugDraw); m_debugDraw.AppendFlags(b2DrawFlags.e_shapeBit | b2DrawFlags.e_aabbBit | b2DrawFlags.e_centerOfMassBit | b2DrawFlags.e_jointBit | b2DrawFlags.e_pairBit); m_world.SetContinuousPhysics(true); m_world.SetWarmStarting(true); }
static void SetupWorld(bool setupGround) { var gravity = new b2Vec2(0.0f, -10.0f); _world = new b2World(gravity); _world.SetAllowSleeping(true); _world.SetContinuousPhysics(true); _world.SetSubStepping(true); _world.SetWarmStarting(true); _world.SetDestructionListener(new Destructo()); _world.SetContactListener(new Contacto()); if (!setupGround) { return; } // Call the body factory which allocates memory for the ground body // from a pool and creates the ground box shape (also from a pool). // The body is also added to the world. b2BodyDef def = b2BodyDef.Create(); def.allowSleep = true; def.position = b2Vec2.Zero; def.type = b2BodyType.b2_staticBody; b2Body groundBody = _world.CreateBody(def); groundBody.SetActive(true); // bottom b2EdgeShape groundBox = new b2EdgeShape(); groundBox.Set(b2Vec2.Zero, new b2Vec2(width, 0)); b2FixtureDef fd = b2FixtureDef.Create(); fd.shape = groundBox; groundBody.CreateFixture(fd); // top groundBox = new b2EdgeShape(); groundBox.Set(new b2Vec2(0, height), new b2Vec2(width, height)); fd.shape = groundBox; groundBody.CreateFixture(fd); // left groundBox = new b2EdgeShape(); groundBox.Set(new b2Vec2(0, height), b2Vec2.Zero); fd.shape = groundBox; groundBody.CreateFixture(fd); // right groundBox = new b2EdgeShape(); groundBox.Set(new b2Vec2(width, height), new b2Vec2(width, 0)); fd.shape = groundBox; groundBody.CreateFixture(fd); _world.Dump(); }