任何计算 SKEmitterNode 发射的粒子数以启用坐标跟踪的方法
Any way to count the number of particles emitted by SKEmitterNode to enable coordinate tracking
这就是我的情况。
我有发射器从屏幕顶部产生并移动到屏幕底部,我正在尝试让 png 图像跟随它们(用于命中检测目的)
问题是我需要实时更新 PNG 图像以跟踪 skemitternode,并且因为我正在生成发射器节点的多个实例,所以我无法将它们设为全局变量(需要 n 个实例的新本地化集)
所以我想出的解决方案是有一个 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 保持在彼此之上?
要获得 SKEmitterNode
'follow' 和 SKSpriteNode
,目前最简单的解决方案是将发射器作为 SKSpriteNode
的子级,并且只移动 SKSpriteNode
。例如:
sprite.addChild(emitter)
目前发射的粒子将被添加到 SKSpriteNode
。这不是一个想法行为,因为粒子将随着 SKSpriteNode
移动。要解决此问题,您应该将 SKEmitterNode
的 targetNode
设置为 SKScene
:
emitter.targetNode = self // Assuming self is the SKScene.
这就是我的情况。
我有发射器从屏幕顶部产生并移动到屏幕底部,我正在尝试让 png 图像跟随它们(用于命中检测目的)
问题是我需要实时更新 PNG 图像以跟踪 skemitternode,并且因为我正在生成发射器节点的多个实例,所以我无法将它们设为全局变量(需要 n 个实例的新本地化集)
所以我想出的解决方案是有一个 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 保持在彼此之上?
要获得 SKEmitterNode
'follow' 和 SKSpriteNode
,目前最简单的解决方案是将发射器作为 SKSpriteNode
的子级,并且只移动 SKSpriteNode
。例如:
sprite.addChild(emitter)
目前发射的粒子将被添加到 SKSpriteNode
。这不是一个想法行为,因为粒子将随着 SKSpriteNode
移动。要解决此问题,您应该将 SKEmitterNode
的 targetNode
设置为 SKScene
:
emitter.targetNode = self // Assuming self is the SKScene.