void Create_RbUpStack(int count) { const float mass = 10.0f; CompoundShape cylinderCompound = new CompoundShape(); CollisionShape cylinderShape = new CylinderShapeX(4, 1, 1); CollisionShape boxShape = new BoxShape(4, 1, 1); cylinderCompound.AddChildShape(Matrix.Identity, boxShape); Quaternion orn = Quaternion.RotationYawPitchRoll((float)Math.PI / 2.0f, 0.0f, 0.0f); Matrix localTransform = Matrix.RotationQuaternion(orn); //localTransform *= Matrix.Translation(new Vector3(1,1,1)); cylinderCompound.AddChildShape(localTransform, cylinderShape); CollisionShape[] shape = new CollisionShape[]{cylinderCompound, new BoxShape(new Vector3(1,1,1)), new SphereShape(1.5f)}; for (int i = 0; i < count; ++i) LocalCreateRigidBody(mass, Matrix.Translation(0, 2 + 6 * i, 0), shape[i % shape.Length]); }
public CollisionShape CreateCylinderShapeX(float radius, float height) { CylinderShapeX shape = new CylinderShapeX(height, radius, radius); _allocatedCollisionShapes.Add(shape); return shape; }