我有这个创造一些熔岩的功能:
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)
}
我想检测玩家何时与它发生碰撞。我该怎么做?
答案 0 :(得分:4)
来自文档:
SpriteKit中的对象不代表粒子。这意味着你 不能对粒子执行与节点相关的任务,也不能关联 具有粒子的物理体使它们与其他物体相互作用 内容。虽然没有可见的类代表粒子 通过发射器节点添加,您可以将粒子视为具有 属性与任何其他对象一样。
因此,您不能使用SpriteKit来检测与发射的Lava的碰撞,但是您可以将物理主体与Lava对象相关联并与之碰撞而不是与单个发射的节点相撞。使用节点categoryContactMask
的{{1}},contactBitMask
字段来检测联系人。