Logan Jahnke
Logan Jahnke

Reputation: 815

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

    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

Upvotes: 2

Views: 1074

Answers (1)

Logan Jahnke
Logan Jahnke

Reputation: 815

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

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

Upvotes: 2

Related Questions