我将使用哪种SKPhysicsBody体型来创建椭圆物理体?
我知道我可以用直线制作曲线,只是让它不是一个真正的椭圆,但似乎必须有某种方法来挤压一个圆圈或创建一个圆圈?
答案 0 :(得分:3)
Create an elliptical CGPath并使用该路径创建一个多边形体:
CGPathRef path = CGPathRef CGPathCreateWithEllipseInRect(someRect, nil);
SKPhysicsBody* body = [SKPhysicsBody bodyWithPolygonFromPath:path];
虽然创建的路径可以为椭圆创建超过16个顶点(内部限制)。在这种情况下,它将崩溃,你必须手动创建路径,确保它没有超过16点。
如果身体不需要是动态的,您也可以使用bodyWithEdgeLoopFromPath:
和bodyWithEdgeChainFromPath:
- 两者都不对顶点数量施加限制。
答案 1 :(得分:1)
由于Sprite Kit不接受带有椭圆CGPath的基于体积的物理体(它可以做圆形,矩形或任何最多12个顶点的凸多边形),因此有两种选择:
SKNode
添加到你的精灵中并将它稍微偏移到一边,然后添加一个较小的圆形物理主体到那个子节点。现在你有两个圆形的物理实体。在另一边冲洗并重复 - 我想你可以接近某种云/椭圆形状,只有三个这样的圆圈彼此靠近。或者,只需将圆形体与固定接头连接,即可获得更好的效果。