使用 SpriteKit 的 Node 路径粒子效果
Posted
技术标签:
【中文标题】使用 SpriteKit 的 Node 路径粒子效果【英文标题】:Node's path particle effect with SpriteKit 【发布时间】:2015-02-12 02:17:15 【问题描述】:我正在使用 Swift、Sprite Kit 和 Xcode 6,
我想在SpriteKit中创建一个粒子效果有点像ios游戏“Duet”中球的粒子效果,但我不知道如何进行,我设法创建了一个粒子效果,但不是像这个游戏中的粒子跟随一个节点并绘制节点的路径......
这是我的代码:
let firstCircle = SKSpriteNode(imageNamed: "Circle")
let particle = SKEmitterNode(fileNamed: "FirstParticle.sks")
override func didMoveToView(view: SKView)
firstCircle.physicsBody = SKPhysicsBody(circleOfRadius: 7)
firstCircle.physicsBody?.affectedByGravity = false
particle.targetNode = firstCircle
addChild(firstCircle)
addChild(particle)
override func touchesBegan(touches: NSSet, withEvent event: UIEvent)
for touch: AnyObject in touches
firstCircle.position = touch.locationInNode(self)
override func touchesMoved(touches: NSSet, withEvent event: UIEvent)
for touch: AnyObject in touches
firstCircle.position = touch.locationInNode(self)
【问题讨论】:
将发射器节点的targetNode
属性设置为您希望它跟随的节点
我已经做到了,粒子正在跟随我的节点,但没有任何“路径”效果,如轨迹
你能发布你的代码吗?
我只发了精华部分,不是全部,因为太长了
我怀疑你是否可以用粒子创建这种效果。
【参考方案1】:
要实现类似二重奏的效果,您需要 particle
成为尾随节点的子节点,并将 targetNode
设置为父场景。 targetNode
控制粒子渲染为哪个节点的子节点。
当particle
是拖尾节点的子节点时,会以拖尾节点为原点发射粒子。将targetNode
更改为父场景会在尾随节点移动时留下已经发射的粒子。
此代码应该可以工作,但您可能需要微调 FirstParticle.sks
。
let firstCircle = SKSpriteNode(imageNamed: "Circle")
let particle = SKEmitterNode(fileNamed: "FirstParticle.sks")
override func didMoveToView(view: SKView)
firstCircle.physicsBody = SKPhysicsBody(circleOfRadius: 7)
firstCircle.physicsBody?.affectedByGravity = false
particle.targetNode = self
addChild(firstCircle)
firstCircle.addChild(particle)
我能够获得类似的效果,并最终创建了一个 Playground 来演示它。看看here。
【讨论】:
感谢您的回答。你知道粒子编辑器的什么配置会使粒子(FirstParticle.sks)看起来类似于二重奏中的轨迹吗?再次感谢。 查看编辑。我上传了一个完整的 Swift Playground 演示效果。您可以从那里的粒子 sks 文件开始,并根据需要对其进行修改。 不客气!如果您对操场有任何问题,请告诉我。 @NoahCovey 你能确保接受这个赏金答案吗? 刚刚做到了!再次感谢以上是关于使用 SpriteKit 的 Node 路径粒子效果的主要内容,如果未能解决你的问题,请参考以下文章
在 SpriteKit 中使用 SKEmitterNode 和粒子创建轨迹
Xcode 5 SpriteKit 粒子发射器未出现在编辑器中
SceneKit:在 SCNView 上渲染 SpriteKit 粒子系统时应用程序崩溃,当所有代码似乎都是系统代码的一部分时如何调试