Обнаружить столкновение между SKNode и Particles?

У меня есть эта функция, которая создает лаву:

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)

}

И я хочу определить, когда игрок сталкивается с ним. Как я могу это сделать?


person Community    schedule 17.02.2016    source источник


Ответы (1)


Из документации:

Частицы не представлены объектами в SpriteKit. Это означает, что вы не можете выполнять задачи, связанные с узлами, над частицами, а также не можете связывать физические тела с частицами, чтобы заставить их взаимодействовать с другим содержимым. Хотя видимого класса, представляющего частицы, добавленные узлом-эмиттером, не существует, вы можете думать о частице как о свойстве, подобном любому другому объекту.

Таким образом, вы не можете использовать SpriteKit для обнаружения столкновений с излучаемой лавой, но вы можете связать физическое тело с объектом лавы и сталкиваться с ним, а не с отдельными излучаемыми узлами. Используйте поля categoryContactMask, contactBitMask physicsBody ваших узлов для обнаружения контактов.

person Jean-Baptiste Yunès    schedule 17.02.2016