制作碰撞后不移动的节点iOS 8

Make a node that doesn't move after collision iOS 8

我有节点(沙子)往下掉。

我还有其他静态节点(墙)。

如何让沙子碰到墙时墙不动?

    let wall = SKSpriteNode(texture: chosen)

    wall.position = location

    wall.physicsBody = SKPhysicsBody(circleOfRadius: sprite.frame.width)
    wall.physicsBody?.affectedByGravity = false
    wall.physicsBody!.categoryBitMask = BLOCK

    self.addChild(wall)

//////////

    let sand = SKSpriteNode (imageNamed: img)
    var randLoc = arc4random_uniform(26)
    sand.position = CGPointMake(location.x - CGFloat(10) + CGFloat(randLoc), location.y)
    self.addChild(sand)

    //gravity
    sand.physicsBody = SKPhysicsBody(circleOfRadius: sand.frame.width)
    sand.physicsBody?.affectedByGravity = true

    //contact
    sand.physicsBody!.categoryBitMask = self.PARTICLE
    sand.physicsBody?.collisionBitMask = self.BLOCK | self.PARTICLE

如果你有 wall.physicsBody?.dynamic = false & sand.physicsBody?.dynamic = true 那么你应该能够检测到接触而不用沙子 pushed/moved 墙。 - 丹尼尔·米哈伊拉

https://whosebug.com/users/4963031/daniel-mihaila