【问题标题】:SpriteKit SKEmitternode Targetnode modify the whole NodeSpriteKit SKEmitternode Targetnode 修改整个Node
【发布时间】:2014-05-17 17:56:18
【问题描述】:

您好,我正在制作一款基于 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 选项。有什么想法吗?

【问题讨论】:

    标签: ios objective-c xcode sprite-kit skemitternode


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,这是真的,但如果我改变 sks 中的比例大小,它看起来真的很不一样,我需要。所以我不会使用目标属性:(。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    相关资源
    最近更新 更多