0
我已经在我的项目中创建了一个模板粒子文件,并希望将它用于不同的纹理图像。SKEmitterNode具有不同的模拟时间
我创建了这一点,并使用此方法...
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动作中添加发射器来解决这个问题。
所有发射器在启动时都运行在自己的时间 – Knight0fDragon
@ Knight0fDragon这就是我所假设的,但它并未更新他们单独。我不得不在不同的时间添加它们以获得我想要的效果。推进模拟时间只能将它们全部转发相同的数量。这是一个在非SpriteKit应用程序中的SKView内的场景,所以这可能会影响到一些东西? – Fogmeister
我写你 – Knight0fDragon