0

嗨,我正在制作一个基于 EmitterNode 对象的 SpriteKit 游戏。我设计了开始场景并放置了一些发射器节点。我还让它们在屏幕上移动。现在我希望他们在很短的时间内留下一个“模式”。正如我在“IOS 7 Tech Talks: 2d Game With sprite kit”视频中看到的那样,我将目标节点修改为 self:

Emitternode.targetNode = self;

我希望我的节点与开发人员在视频中使用的相同。然而,这条线修改了我的节点,使它更大更快。我将链接一些屏幕截图。这里的代码,我用这个创建发射器节点:

 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 选项。任何的想法?

4

1 回答 1

1

如我所见,您将发射器节点的比例设置为 0.3。这意味着它的所有子节点(粒子)也被缩放到 0.3。使用 targetNode = self 创建的粒子不再是 SKEmitterNode 的子节点,而是由“self”(您的场景)表示的节点的子节点。如果您的场景的默认比例为 1.0,那么粒子的比例也将是 1.0。

使用粒子编辑器而不是编程方式更改发射器的大小将保持该大小。

于 2014-04-05T10:50:58.800 回答