嗨,我正在做一个基于EmitterNode对象的SpriteKit游戏。
我已经设计了开始场景并放置了一些发射器节点。我还让他们在屏幕上移动。现在,我希望他们在很短的时间内离开“模式”。正如我在“ IOS 7技术讲座:带有Sprite Kit的2d游戏”视频中看到的那样,我将目标节点修改为自己:
Emitternode.targetNode = self;
我希望节点与视频中开发人员使用的节点相同。但是,此行修改了我的节点,使其更大且更快。我将链接一些屏幕截图。
在此代码中,我使用以下代码创建Emitternodes:
SKEmitterNode *Emitternode = [NSKeyedUnarchiver unarchiveObjectWithFile:pathtoadd];
Emitternode.position = CGPointMake(arc4random_uniform(Scene.size.width-40)+20, arc4random_uniform(Scene.size.height-60)+20);
[Emitternode setScale:0.3f];
Emitternode.targetNode = self;
[self addChild:Emitternode];
我的屏幕快照:
这没有targetnode选项:
这与targetnode选项:
如您所见,在第二种情况下,它们要大得多。我希望具有相同的大小,但带有targetnode选项。任何想法?
最佳答案
如我所见,将发射器节点的比例设置为0.3。这意味着其所有子节点(粒子)也将缩放为0.3。使用targetNode = self时,创建的粒子不再是SKEmitterNode的子代,而是由“ self”(您的场景)表示的节点的子代。如果场景的默认比例为1.0,则粒子的比例也将为1.0。
使用粒子编辑器而不是通过编程方式更改发射器的大小将保持该大小。
关于ios - SpriteKit SKEmitternode Targetnode修改整个Node,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22879406/