在我的游戏中,我有一个玩家和一个矿井。当玩家击中矿井时,我会在场景中添加SKEmitterNode
来模拟爆炸。
在Mine类中,我为SKEmitterNode
声明了一个像这样的实例变量:
var particles = SKEmitterNode(fileNamed: "MineExplosion")!
当玩家触摸我的时候,我在Mine类中调用一个名为explode的函数,它将emitterNode添加到场景中,如下所示:
self.particles.position = self.position
foreGround.addChild(self.particles)
问题是粒子永远不会添加到场景中。但是,如果我在爆炸功能中创建SKEmitterNode
,然后将其添加到场景中,则会出现粒子:
let particles = SKEmitterNode(fileNamed: "MineExplosion")!
particles.position = self.position
foreGround.addChild(particles)
所以唯一的区别是在矿井初始化过程中声明SKEmitterNode
,或者在爆炸功能期间即时报警。我想在初始化期间声明它,以防创建SKEmitterNode
是导致我的游戏在击中我的时候抖动的原因。还有其他人经历过这个吗?