我有这样的功能,可以创造一些熔岩:

func setupLava() {
    let emitter = SKEmitterNode(fileNamed: "Lava.sks")!
    emitter.particlePositionRange = CGVector(dx: 200, dy: 0.0)
    emitter.advanceSimulationTime(3.0)
    emitter.zPosition = 4
    emitter.position = CGPoint(x: self.frame.width / 2, y: 300)
    lava.addChild(emitter)

}

我想知道玩家什么时候撞上它。我该怎么做?

最佳答案

从文档中:
粒子不由spritekit中的对象表示。这意味着你
无法对粒子执行与节点相关的任务,也无法关联
物理物体与粒子相互作用
内容。尽管没有表示粒子的可见类
由发射器节点添加,可以将粒子视为具有
属性与任何其他对象一样。
因此,您不能使用spritekit来检测与发射熔岩的碰撞,但是您可以将物理体与熔岩对象相关联,并与之碰撞,而不是单独发射的节点。使用节点的categoryContactMask字段来检测联系人。

关于swift - 检测SKNode和粒子之间的碰撞?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35465877/

10-09 12:54