首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制SKEmitterNode“区域”大小?

控制SKEmitterNode“区域”大小?
EN

Stack Overflow用户
提问于 2016-09-11 14:06:34
回答 2查看 253关注 0票数 1

我正在学习SpriteKit,特别是如何将SKEmitterNode效果应用于现有的SKSpriteNode。

我在粒子编辑器中做了一个简单的“雨”粒子。然后我将它连接到我游戏中的现有精灵,如下所示:

代码语言:javascript
复制
let emitter = SKEmitterNode(fileNamed: "RainParticle.sks")
emitter?.targetNode = dogSprite
// dogSprite is just an SKSpriteNode
dogSprite.addChild(emitter!)

我得到的效果看起来像这样:

粒子效果的应用正如我所期望的,效果就是我想要的。我唯一想要改变的是粒子效果的“面积”。

狗的雪碧图大概是60x50。我希望粒子效果在狗精灵的底部被“切断”。换句话说,我不希望粒子在狗精灵的“磁贴”之外移动。

有没有办法通过改变发射器的属性来做到这一点,或者我必须从不同的角度来解决这个问题?非常感谢!

(为了防止有人注意到,这些艺术品都不是我的,这也不是一个商业项目。我只是从网上抓取了一些我喜欢的精灵来学习!我完全赞成遵守许可证。)

EN

回答 2

Stack Overflow用户

发布于 2016-09-11 20:28:20

您可以简单地创建一个类似以下示例的SKCropNode

代码语言:javascript
复制
// initialize the SKCropNode
let cropNodeDog = SKCropNode.init()

// create the dog sprite and give a position
let dogSprite = SKSpriteNode(imageNamed: "dogSprite.png")
dogSprite.position = CGPoint(x: CGRectGetMidX(self.frame),y:CGRectGetMidY(self.frame))

// create the SKEmitterNode and give a high zPosition
emitter = SKEmitterNode(fileNamed: "RainParticle.sks")
emitter.zPosition = 2

// Define the SKCropNode mask and add elements to it
cropNodeDog.maskNode = dogSprite
cropNodeDog.addChild(dogSprite)
cropNodeDog.addChild(emitter)

//Finally add the SKCropNode to the scene
addChild(cropNodeDog)

您可以在Apple docs上找到有关SKCropNode的更多详细信息。

票数 1
EN

Stack Overflow用户

发布于 2016-09-11 18:40:45

我猜您必须在xCode粒子编辑器中使用一些设置。

最有可能与此相关的值是

1)生命周期

2) PositionRange (y)

如果需要的话,你也可以改变粒子效果的比例。我用代码来做这件事

代码语言:javascript
复制
emitter.setScale(...)

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39433332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档