制作碰撞后不移动的节点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 墙。 - 丹尼尔·米哈伊拉
我有节点(沙子)往下掉。
我还有其他静态节点(墙)。
如何让沙子碰到墙时墙不动?
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 墙。 - 丹尼尔·米哈伊拉