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