void Board::InitDemo() { physics->SetIterations(20); physics->SetSteps(1); physics->ResizeStaticHash(40.0f,1000); physics->ResizeActiveHash(40.0f,1000); PhysicsObject* obj = physics->CreateStaticObject(); obj->AddSegmentShape(SexyVector2(0,470), SexyVector2(640, 470), 0.0f,1.0f,1.0f); float radius = 15.0f; obj = physics->CreateObject(10.0f, physics->ComputeMomentForCircle(10.0f, 0.0f, radius, SexyVector2(0.0f,0.0f))); obj->SetPosition(SexyVector2(320, 455)); obj->AddCircleShape(radius, SexyVector2(0,0), 1.0f,1.0f); int num = 4; SexyVector2 verts[] = { SexyVector2(-15,-15), SexyVector2(-15, 15), SexyVector2( 15, 15), SexyVector2( 15,-15), }; int i,j; for(i=0; i<14; i++){ for(j=0; j<=i; j++){ PhysicsObject* obj = physics->CreateObject(1.0f, physics->ComputeMomentForPoly(1.0f, num, verts, SexyVector2(0.0f,0.0f))); obj->AddPolyShape(num, verts, SexyVector2(0.0f,0.0f),0.0f,0.4f); obj->SetPosition(SexyVector2(300 + j*32 - i*16, i*32)); } } }
PhysicsObject* Board::MakeBox(const SexyVector2& position) { int num = 4; SexyVector2 verts[] = { SexyVector2(-15,-7), SexyVector2(-15, 7), SexyVector2( 15, 7), SexyVector2( 15,-7) }; PhysicsObject* obj; obj = physics->CreateObject(1.0f, physics->ComputeMomentForPoly(1.0f, num, verts, SexyVector2(0.0f,0.0f))); obj->AddPolyShape(num, verts, SexyVector2(0.0f,0.0f),0.0f,1.0f); obj->SetPosition(position); return obj; }