我是 Spritekit 新手。刚刚开始制作我的第三到第四款游戏。所以我想知道以编程方式使用 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
或者
// 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
?
最佳答案
两种方法都可以。在我的游戏中,我为不同类型的效果设置了不同的发射器类型。原因是因为我的每个发射器的属性都非常不同,以至于没有意义进行概括。另一个原因是因为我可能需要同时在屏幕上显示多个发射器。
如果您知道大部分或所有属性都将相同,并且一次只会使用一个发射器,那么您只需更改纹理即可。
基本上这取决于您想要做什么。没有一种最佳实践。不过,我确实建议使用粒子编辑器。只是必须更快地在视觉上进行调整,并且稍后您可以随时以编程方式更改属性。
关于sprite-kit - 以编程方式使用 SKEmitterNode 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35862269/