声明SKEmitterNode是一个实例变量

时间:2016-09-06 22:35:33

标签: ios swift sprite-kit skemitternode

在我的游戏中,我有一个玩家和一个矿井。当玩家击中矿井时,我会在场景中添加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是导致我的游戏在击中我的时候抖动的原因。还有其他人经历过这个吗?

0 个答案:

没有答案