【发布时间】:2016-08-15 13:14:47
【问题描述】:
我在我的项目中创建了一个模板粒子文件,并希望将它与不同的纹理图像一起使用。
我已经创建了这个并使用了这个方法......
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 这就是我的假设,但它并没有单独更新它们。我不得不在不同的时间添加它们以获得我想要的效果。推进模拟时间只会使它们全部向前推进相同的数量。这是非 SpriteKit 应用程序中 SKView 内的场景,所以可能会影响到什么?
-
我正在为你写一个答案
-
没有
SpriteKit app这样的东西,如果你有一个SKView并且正在处理SKScene,那么你正在处理sprite kit,无论你开始使用什么模板 -
@Knight0fDragon 啊,好的。很公平。将等待您的答复:)
标签: swift sprite-kit skemitternode