public CCPhysicsBody j2cpBody( JObject bodyValue) { CCPhysicsBody body = new CCPhysicsBody(); SetBodyTypeFromInt(body, (int)bodyValue.GetValue("type")); //int i = 0; JArray fixtureValues = (JArray)bodyValue["fixture"]; if (null != fixtureValues) { List<CCPhysicsShape> shape; int numFixtureValues = fixtureValues.Count; for (int i = 0; i < numFixtureValues; i++) { JObject fixtureValue = (JObject)fixtureValues[i]; shape = j2cpShape(fixtureValue, body.BodyType); readCustomPropertiesFromJson(shape, fixtureValue); body.AddShape(shape,true); } } body.Position = jsonToPoint("position", bodyValue); body.SetAngle(jsonToFloat("angle", bodyValue)); body.SetVelocity(jsonToPoint("linearVelocity", bodyValue)); body.SetAngularVelocity( jsonToFloat("angularVelocity", bodyValue)); //body. linearDamping = jsonToFloat("linearDamping", bodyValue, -1, 0); //body.set angularDamping = jsonToFloat("angularDamping", bodyValue, -1, 0); //body.gravityScale = jsonToFloat("gravityScale", bodyValue, -1, 1); //body.allowSleep = bodyValue["allowSleep"] == null ? false : (bool)bodyValue["allowSleep"]; //body.awake =; var awake = bodyValue["awake"] == null ? false : (bool)bodyValue["awake"]; if (!awake) body.Body.Sleep(); var fixedRotation = bodyValue["fixedRotation"] == null ? false : (bool)bodyValue["fixedRotation"]; if (fixedRotation) body.Moment = cp.Infinity; //body.bullet = bodyValue["bullet"] == null ? false : (bool)bodyValue["bullet"]; //bodyDef.active = bodyValue["active"] == null ? false : (bool)bodyValue["active"]; //body.active = true; String bodyName = bodyValue["name"] == null ? "" : (string)bodyValue["active"]; if (!string.IsNullOrEmpty(bodyName)) SetBodyName(body, bodyName); // may be necessary if user has overridden mass characteristics //b2MassData massData = new b2MassData(); if (body.BodyType == cpBodyType.DYNAMIC) body.Body.SetMass(jsonToFloat("massData-mass", bodyValue)); //massData.mass = ; body.Body.SetCenterOfGravity(jsonToVec("massData-center", bodyValue)); //massData.center =; return body; }