我在项目中创建了一个模板粒子文件,并希望将它与不同的纹理图像一起使用。
我已创建并使用此方法...
func addEmitterWithTexture(image: UIImage, size: CGSize, advanceTime: NSTimeInterval, scene: SKScene) {
let emitter = SKEmitterNode(fileNamed: "MyParticle")!
scene.addChild(emitter)
emitter.particleTexture = SKTexture(image: image)
emitter.position = CGPoint(x: size.width * 0.5, y: size.height * 0.5)
emitter.particlePositionRange = CGVector(dx: size.width, dy: size.height)
emitter.advanceSimulationTime(advanceTime)
emitter.zPosition = 3.0
}
我希望图像能够在不同时间弹出,所以我使用advanceSimulationTime
。但它似乎没有效果。所有图像使用相同的模拟时间。
我猜这是因为模拟时间在父母身上?
修改 嗯......似乎并非如此。
我想知道所有发射器是否都在全局模拟计时器上?在这种情况下,有没有办法在不同的时间启动发射器?
是这样的,还是我做错了什么?
我最终通过在场景中使用waitAction并在等待后在runBlock操作中添加发射器来解决它。
答案 0 :(得分:0)
提前时间唯一能做的就是快速向前快进发射器动作,当你想让发射器在不同时间发射时,不要使用它,在将发射器添加到场景之前,通过设置{{1 }}到true,paused
到0并调用particleSpeed
这使我们保证当添加粒子发射器时它不会运行。然后使用resetSimulation()
来确定何时需要取消暂停发射器并将其速度设置回默认速度