以编程方式使用SKEmitterNode的正确方法

时间:2016-03-08 08:19:25

标签: sprite-kit particles skemitternode

我是Spritekit的新手。刚刚开始进行我的第4至第4场比赛。所以我想知道以编程方式使用SKEmitterNode的正确方法是什么。

如果我想在游戏中使用多个粒子 - 喷射引擎火力,以及当子弹击中敌舰时多次爆炸,那么正确的做法是什么。

我是否继续创建新的SKEmitterNode并将其添加到场景中,还是添加单个全局EmitterNode并在更新功能中更改其属性?

// FIRE ENGINE

SKEmitterNode *_myEmitter = [[SKEmitterNode alloc] init];
// codes..
[self addChild:_myEmitter]; // add to scene

// EXPLOSION 

SKEmitterNode *_myEmitter = [[SKEmitterNode alloc] init];
// codes..
[self addChild:_myEmitter]; // add to scene

OR

// IN INIT METHOD

_myEmitter = [[SKEmitterNode alloc] init]; // global variable
// codes..
[self addChild:_myEmitter]; // add once


// IN UPDATE

//when explode
_myEmitter.particleTexture = [SKTexture textureWithImageNamed:@"explode.png"];
... modify code


//when engine fire
_myEmitter.particleTexture = [SKTexture textureWithImageNamed:@"fire.png"];
... modify code

1 个答案:

答案 0 :(得分:2)

你可以这样做。在我的游戏中,我有不同的发射器类型,用于不同类型的效果。这样做的原因是因为我的每个发射器属性都是如此不同以至于没有理由进行概括。另一个原因是因为我可能需要在屏幕上同时拥有多个发射器。

如果您知道大多数或所有属性都是相同的,并且您一次只能使用一个发射器,那么您只需更改纹理即可。

基本上这取决于你想做什么。没有一个最好的做法。我建议使用粒子编辑器。只需要更快地直观地调整内容,您可以随时以编程方式更改属性。