【问题标题】:SKEmitterNode particles lag at startSKEmitterNode 粒子在启动时滞后
【发布时间】:2015-06-15 06:21:55
【问题描述】:

我在自己的小游戏中玩弄 SKEmitterNode。我正在射击一个炮弹,当炮弹击中场景中的一个盒子时,盒子被摧毁,并创建了一个带有简单纹理“BOOM”的粒子效果,以便在盒子消失时进行过渡。问题是,当我启动发射器时,我希望它立即开始发射粒子,但事实并非如此,粒子在 0.5-1 秒的短暂延迟后播放。

这是我创建发射器的函数:

func createParticleEmitter(fileName: String) -> SKEmitterNode
{
    let path = NSBundle.mainBundle().pathForResource(fileName, ofType: "sks")
    assert(path != nil, "Could not find file \(fileName)")

    let obj : AnyObject? = NSKeyedUnarchiver.unarchiveObjectWithFile(path!)
    assert(obj != nil, "The emiter \(fileName) could not be created")

    return obj as! SKEmitterNode
}

然后在发生碰撞时,调用这个函数,其中 position 是垂死对象的位置,scene 是垂死对象的父场景:

func addOnDeathParticles(position: CGPoint, scene : SKNode)
{
    var emitter : SKEmitterNode = createParticleEmitter("boom")

    emitter.position = position

    let seq = [SKAction.waitForDuration(PARTICLE_DIE_DURATION,
               withRange:PARTICLE_DIE_DURATION_RANGE),
               SKAction.removeFromParent()]

    emitter.runAction(SKAction.sequence(seq))
    scene.addChild(emitter)
}

添加动作列表以使发射器在 PARTICLE_DIE_DURATION 之后消失,随机值为 PARTICLE_DIE_DURATION_RANGE。

据我了解,只要将发射器附加到场景中,它就应该开始发射粒子。但正如我一开始提到的,情况并非如此,粒子在 0.5-1 秒后开始出现。 创建的粒子只是一个正在放大并缓慢旋转的纹理,但没有设置延迟(甚至不确定是否可以这样做)。

有没有人有同样的行为或有什么建议我做错了什么? 很高兴得到任何帮助:)

干杯,TK

【问题讨论】:

  • 粒子会立即在您的 .sks 文件中发射吗?也许advanceSimulationTime: 可以帮助你(developer.apple.com/library/ios/documentation/SpriteKit/…:)?
  • 如果您只在模拟器中查看它,您会看到一些滞后,因为 SpriteKit 针对设备架构而非桌面进行了优化。在 iPhone 或 iPod 上进行测试,您会发现性能有所不同。
  • 到目前为止,我确实只用模拟器测试了发射器,我将在我的 iPad 上尝试并报告。希望你是对的:D
  • OK,模拟器和iPad的速度差不多,都有卡顿。拯救我的是 Ichamp 建议的“advanceSimulationTime”。您能否将其发布为答案,以便我将其标记为已解决?谢谢大家:)

标签: ios xcode swift particles skemitternode


【解决方案1】:

解决方案是将 AdvanceSimulationTime 设置为 1.0 秒。我不完全确定为什么会这样,但我认为创作“动画”占用了这段时间。

无论如何,案件已经结束,感谢大家的帮助,尤其是 lchamp,因为他提出了解决方案。

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多