我正在测试SpriteKit的功能,我遇到了一个问题.我正在阅读比特面具,碰撞,类别和联系.我得到它们是什么,大多数情况下,至少,我没有得到类别位掩码的点,但我得到碰撞位掩码,这是我需要解决我的问题.
好吧我的问题是我有两种不同类型的精灵:对象和第二种.名称并没有多大意义,但它只是为了测试.我希望第二个有冲动,我希望对象有力量.我能够在精灵上应用相应的向量,但我不希望它们相互碰撞.我希望他们通过并忽略彼此的存在.
我尝试通过为彼此分配不同的碰撞位掩码来解决该问题:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let texture = SKTexture(imageNamed: "pokeball")
let object = SKSpriteNode(texture: texture)
object.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: object.size.width,height: object.size.height))
object.physicsBody?.affectedByGravity = false
object.yScale = 0.5
object.xScale = 0.5
for t in touches {
object.position = t.location(in: self)
}
self.addChild(object)
object.physicsBody?.collisionBitMask = UInt32(4)
object.physicsBody?.applyForce(CGVector(dx: 0, dy: 10))
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
let texture = SKTexture(imageNamed: "purple")
let second = SKSpriteNode(texture: texture)
let …Run Code Online (Sandbox Code Playgroud)