Create an elliptical CGPath и создать многоугольник тело с этим путем:
CGPathRef path = CGPathRef CGPathCreateWithEllipseInRect(someRect, nil);
SKPhysicsBody* body = [SKPhysicsBody bodyWithPolygonFromPath:path];
Вполне возможно, однако, что созданный путь создает более 16 вершин (внутренний лимит) для эллипса. В этом случае он будет аварийно завершен, и вам нужно будет создать путь вручную, гарантируя, что он не имеет более 16 пунктов.
Если тело не обязательно должно быть динамичным, вы также можете использовать bodyWithEdgeLoopFromPath:
и bodyWithEdgeChainFromPath:
- оба не накладывают ограничений на количество вершин.
Я пробовал это, но он сказал мне «неожиданный тип имени CGPathRef, ожидаемое выражение» – majidarif