我有这种情况:http://mokainteractive.com/example.png雪碧套件物理车身复杂形状 - Spritekit
我想移动红色轨道内的白色球和检测无论球触摸红色轨道的限制。
哪一个是最好的解决方案?我必须沿边界创建多个透明形状?你有其他想法吗? 非常感谢
我有这种情况:http://mokainteractive.com/example.png雪碧套件物理车身复杂形状 - Spritekit
我想移动红色轨道内的白色球和检测无论球触摸红色轨道的限制。
哪一个是最好的解决方案?我必须沿边界创建多个透明形状?你有其他想法吗? 非常感谢
你不能为这种形状创建单个物理体。
使用bodyWithPolygonFromPath:
将只允许您创建一个凸多边形路径,这显然不适合您的形状。
我觉得你有3个选择这里:
bodyWithPolygonFromPath:
机构(可能是最难做的,耗时的)。bodyWithRectangleOfSize:
身体(不那么困难,但费时)。bodyWithRectangleOfSize:
(最简单和最快)。如果您选择此选项,请记住您仍然可以将直线旋转到各种角度。在iOS8您可以为这种形状创建单个物理体。
用p.e创建您的形状的纹理。 Adobe Illustrator和使用这种方法:
init(texture texture: SKTexture!,alphaThreshold alphaThreshold: CFloat,size size: CGSize) -> SKPhysicsBody
SKTexture
是你的整形图像。身体由彩色像素定义。分析纹理并忽略鸡蛋周围的所有不可见像素,只将颜色像素解释为SKPhysicsNode的主体。你应该使用太多这些,因为它们对物理引擎的计算非常昂贵。
该方法的变体可在SpriteKit Class Reference中找到。
给你的问题。制作应该透明的区域的反色纹理,并将其作为纹理传递给物理主体。它将被分析并创建自由区周围的身体。
你可以使用'+ bodyWithEdgeLoopFromPath:'。这将是艰苦的工作,但可能是值得的。 – ZeMoon