任何计算SKEmitterNode发出的粒子数量以启用坐标跟踪的方法

时间:2015-06-04 19:04:34

标签: swift skaction skemitternode

所以这是我的情况。

我有从屏幕顶部产生并发射到屏幕底部的发射器,我正试图让png图像跟随它们(用于命中检测)

问题是我需要实时更新PNG图像以跟踪skemitternode,因为我生成了几个发射器节点的实例,我不能使它们成为全局变量(需要为n个实例设置一个新的本地化集合)< / p>

因此,我提出的解决方案是使用while循环继续将PNG更新为发射器节点坐标。当粒子数小于500(我设定的粒子寿命)时,循环的条件将继续。

我无法让png图像继续使用skemitter节点。它始终高于它或失去跟踪。

目前我正在使用:

while (particle < 5000) {
    enemySmoke.position = Enemy.position
    particle++
}

其中enemySmoke是沿Y轴向下移动的SKEmitter节点

var action = SKAction.moveToY(SH-SH, duration: 10 - duration)
// Basically moving to bottom of screen faster with each spawn as I have 
// duration variable incrementing.

enemySmoke.runAction(SKAction.repeatActionForever(action))
Enemy.runAction(SKAction.repeatActionForever(action))

如何让发射器和png保持在一起?

1 个答案:

答案 0 :(得分:0)

SKEmitterNode&#39;关注&#39;一个SKSpriteNode,到目前为止,最简单的解决方案是将发射器作为SKSpriteNode的子级,并仅移动SKSpriteNode。例如:

sprite.addChild(emitter)

此时发射的粒子将被添加到SKSpriteNode。这不是一个想法行为,因为粒子将与SKSpriteNode一起移动。要解决此问题,您应该将targetNode的{​​{1}}设置为SKEmitterNode

SKScene