Logan Jahnke Logan Jahnke - 1 year ago 98
Swift Question

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

I have nodes (sand) falling downwards.

I have other nodes (walls) that are static.

How do I make the walls not move when the sand collides with it?

let wall = SKSpriteNode(texture: chosen)

wall.position = location

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



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

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

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

Answer Source

if you have wall.physicsBody?.dynamic = false & sand.physicsBody?.dynamic = true then you should be able to detect the contact without the walls being pushed/moved by the sand. - Daniel Mihaila


Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download