gpt4 book ai didi

swift - 不同模拟时间的 SKEmitterNode

转载 作者:行者123 更新时间:2023-11-30 13:09:03 24 4
gpt4 key购买 nike

我在项目中创建了一个模板粒子文件,并希望将其与不同的纹理图像一起使用。

我创建了这个并使用这个方法...

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 操作中添加发射器来解决这个问题。

最佳答案

提前时间所做的唯一事情是在时间上快进发射器 Action ,当您希望发射器在不同时间发射时不要使用此功能,在将发射器添加到场景之前,通过设置 来停止它暂停为true,articleSpeed为0并调用resetSimulation()这保证了我们在添加粒子发射器时它不会运行。然后使用SKAction来确定何时需要取消暂停发射器并将其速度设置回默认速度

关于swift - 不同模拟时间的 SKEmitterNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com