swift - 发射器未添加玩家位置

标签 swift sprite-kit sknode skemitternode

我正在尝试让玩家与 SKNode 发生碰撞。这样做,我想要一个粒子显示 SKNode 刚刚所在的位置(玩家)并显示效果。当我尝试创建它时,发射器没有显示玩家所在的位置。我该如何解决这个问题?

    func didBegin(_ contact: SKPhysicsContact) {

        let bodyA = contact.bodyA
        let bodyB = contact.bodyB




 if bodyA.categoryBitMask == 1 && bodyB.categoryBitMask == 2 || bodyB.categoryBitMask == 1 && bodyA.categoryBitMask == 2  {
        let player = SKNode(fileNamed: "player")
        let explostion = SKEmitterNode(fileNamed: "explosion.sks")
        let addExplosion = SKAction.run {
            player?.addChild(explostion!)

        }
        let seq = SKAction.sequence([addExplosion])

        self.addChild(explostion!)
        self.run(seq)

        }

    }

最佳答案

可能物理体之一属于玩家节点?所以你可以从 body 访问它。例如,让我们的玩家 body - 是bodyA:

  if bodyA.categoryBitMask == 1 && bodyB.categoryBitMask == 2 || bodyB.categoryBitMask == 1 && bodyA.categoryBitMask == 2  {
        let player = bodyA.node
        let explostion = SKEmitterNode(fileNamed: "explosion.sks")
        player.addChild(explostion!)
        }
    }

关于swift - 发射器未添加玩家位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51567789/

相关文章:

objective-c - 带有发射器的 SKShapeNode 使用 SKAction removeFromParent 崩溃

ios - 使用 SpriteKit 渲染大网格

swift - swift 是否有类似于 CustomStringConvertible 的协议(protocol)来进行冗长的多行打印?

swift - 在 Swift 中围绕我的当前位置画圈

swift - Sprite Kit 如何更新按钮上的图像?

ios - 移动时修改 SKNode 的属性

ios - 为什么 SKNode nodeAtPoint 返回错误的节点?

ios - 将 UIView.layer.clipsToBounds = true 与 CABasicAnimation 结合使用时,并非所有像素都被剪裁

ios - 如何使用自定义标签或可访问性标识符查找 SwiftUI View ?

objective-c - 无法让粒子跟随 spriteKit 中的路径