我遇到这种情况:http://mokainteractive.com/example.png
我想将白球移到红色轨道内,并检测球在何处接触红色轨道的极限。
哪种解决方案最好?我必须沿边界创建多个透明形状?你有其他想法吗? 非常感谢
答案 0 :(得分:4)
在 iOS8 中,您可以为这种形状创建一个物理主体。
用p.e.制作你的形状纹理。 Adobe Illustrator并使用此方法:
init(texture texture: SKTexture!,alphaThreshold alphaThreshold: CFloat,size size: CGSize) -> SKPhysicsBody
SKTexture
是你塑造的形象。正文由彩色像素定义。分析纹理,忽略蛋周围的所有不可见像素,只将颜色像素解释为SKPhysicsNode的主体。您应该使用太多这些,因为它们对物理引擎的计算成本非常高。
此方法的变体可在SpriteKit Class Reference。
中找到解决你的问题。制作一个应该透明的区域的反向纹理,并将其作为纹理传递给物理主体。将对其进行分析,并创建一个围绕自由区的主体。
答案 1 :(得分:-1)
您不能为这种形状创建单个物理主体。
使用bodyWithPolygonFromPath:
只允许您创建一个凸多边形路径,这显然不适用于您的形状。
我认为你有三个选择:
bodyWithPolygonFromPath:
身体(可能是最难做和耗时的)。bodyWithRectangleOfSize:
身体(不是那么辛苦但耗时)。bodyWithRectangleOfSize:
(最简单,最快)。如果选择此选项,请记住您仍然可以将直线旋转到各种角度。