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

标签 swift ios8 sprite-kit

我有节点(沙子)向下落。

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

如何让沙子碰撞墙壁时不移动?

    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.physicalsBody?.dynamic = false & sand.physicalsBody?.dynamic = true那么你应该能够在没有墙壁的情况下检测到接触被沙子插入/移动。 - 丹尼尔·米哈伊拉

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

关于swift - 制作碰撞后不移动的节点 iOS 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32319544/

相关文章:

ios - 自定义类不会自动显示 - Swift 3 iOS 10.2 Xcode 8

swift - UIImage 未出现在 UITableView 的原型(prototype)单元格中(Swift)

ios7 - 创建跳跃 Action

ios - 在另一个对象中初始化 UISwipeGestureRecognizer 时使用未声明的标识符 'action'

ios - 在自定义 collectionViewLayout 中,所有图像看起来都被拉伸(stretch)了

ios - 更新 UIView 生成 subview 对齐/Swift 的哈希值

swift - 使用字符串数组用 UIButtons 填充 UIStackView

ios - 在 Swift 中以编程方式获取包标识符?

ios - 蓝色横幅 '%MyApp% is Using Your Location' 适用于仅在事件时使用定位服务的应用

ios - SKAudioNode 不会播放声音