我正在尝试制作一个物理体来勾勒出精灵节点,例如:不使用skphysicsbody(circleofsize…)而只是获得圆形或使用skphysicsbody(rectangleofsize…),但我认为有一个“字母掩码”或类似的东西可以允许,比如说,如果我的精灵节点是一个杯子形状或“v”形状允许物体进入打开的顶部,并在“V”内被抓住?提前谢谢:)
所以第一张照片是我不断得到的,当我尝试矩形一,第二张照片是我需要的类型!
最佳答案
如果使用的是PNG图像(或任何支持清晰像素的图像类型),则只需从纹理创建physicsBody
:
let sprite = SKSpriteNode(imageNamed: "Spaceship")
sprite.physicsBody = SKPhysicsBody(texture: sprite.texture!, size: sprite.texture!.size())
这将基于纹理的清晰和彩色像素创建
physicsBody
,以便尽最大努力匹配形状。请注意,使用此功能并不总是100%准确,如果与高度复杂的纹理(延迟、内存问题等)一起使用,可能会导致问题。
根据苹果文件:
为物理选择形状时
身体,不要太精确。
更复杂的形状需要更多的工作才能正确模拟。
SKPhysicsBody Apple Docs
关于swift - 如何在Sprite节点周围分配SKPhysicsBody,使其完美环绕对象框架,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40269076/