1

我是 stackoverflow 和 Swift 的新手。我正在用 Swift 和 SpriteKit 做一个飞碟游戏,我想在我触摸一个物体时实现破碎的陶瓷效果。除了这个效果,我什么都有。我刚刚创建了我的“Myparticle.sks”并选择了图像、粒子的数量......另外,我正在尝试在 didMoveToView() 方法中添加我的发射器节点,我观察到我可以看到它的效果当显示场景时,但是当我在 touchesBegan() 方法中添加我的发射器节点时,我没有看到它。

我对此有点困惑。

谢谢!

- - - -编辑 - - - -

我在我的课堂上写了这段代码。

private struct Particle{

    static let untypedEmitter : AnyObject = NSKeyedUnarchiver.unarchiveObjectWithFile(NSBundle.mainBundle().pathForResource("MyParticle", ofType: "sks")!)!;
}

let emitter:SKEmitterNode = Particle.untypedEmitter as! SKEmitterNode

然后我在 didMoveToView() 方法中写了这个。有了这个,我可以看到效果。

emitter.position=CGPoint(x:self.frame.width/2,y:self.frame.height/2)
self.addChild(emitter)

最后,如果我像以前一样在 touchesBegan() 方法中添加发射器,我什么也看不到。

4

1 回答 1

0

您的问题可能是您的发射器的粒子显示在其他内容后面。要在其他节点上方显示您的粒子,您可以更改发射器的particleZPosition属性。例如:

emitter.particleZPosition = 1000

我建议查看 Apple 的 SpriteKit 文档以获取有关zPositions 的更多信息:https ://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Nodes/Nodes.html

于 2015-04-19T17:14:10.937 回答