SKAction 仅更新最后一个实例化的精灵
SKAction Updating Last Instantiated Sprite Only
在从背部手术恢复期间自学 spritekit。非常感谢您提供的任何帮助或指导。
我有一个函数可以添加一个带有子 SKEmitter 的 "monster" 精灵。我想将此发射器更新为 "turn on" 和 "turn off" SKEmitter。只要屏幕上只有一个精灵,这个功能就会起作用。从该函数创建第二个节点的那一刻,第一个节点停止打开和关闭。
在我看来,SKAction 仅作用于最新节点。我无法告诉我如何解决这个问题。
我在 UI 中看到的示例。
我的代码:
flameThrowerSplash = SKEmitterNode(fileNamed: "flamesThrowerSplash.sks")!
let newX = flameThrowerSplash.position.x - 475
let newY = flameThrowerSplash.position.y + (zombie1.size.height * 0.7)
let newLocation = CGPointMake(newX, newY)
flameThrowerSplash.position = newLocation
flameThrowerSplash.targetNode = currentScene
let wait = SKAction.waitForDuration(0.5)
let pauseEmitter = SKAction.runBlock({self.flameThrowerSplash.particleBirthRate = 0})
let startEmitter = SKAction.runBlock({ self.flameThrowerSplash.particleBirthRate = 455})
let wait2 = SKAction.waitForDuration(0.5)
let run = SKAction.sequence([wait, startEmitter,wait2, pauseEmitter])
zombie1.runAction(SKAction.repeatActionForever(run))
您似乎不想让 flameThrowerSplash 成为一个场景 属性。
而不是这个
flameThrowerSplash = SKEmitterNode(fileNamed: "flamesThrowerSplash.sks")!
声明为新变量即可
let flameThrowerSplash = SKEmitterNode(fileNamed: "flamesThrowerSplash.sks")
然后就可以独立的给每个僵尸添加了。
您正在为每个新僵尸重新分配它。这就是它消失的原因。
在从背部手术恢复期间自学 spritekit。非常感谢您提供的任何帮助或指导。
我有一个函数可以添加一个带有子 SKEmitter 的 "monster" 精灵。我想将此发射器更新为 "turn on" 和 "turn off" SKEmitter。只要屏幕上只有一个精灵,这个功能就会起作用。从该函数创建第二个节点的那一刻,第一个节点停止打开和关闭。
在我看来,SKAction 仅作用于最新节点。我无法告诉我如何解决这个问题。
我在 UI 中看到的示例。
我的代码:
flameThrowerSplash = SKEmitterNode(fileNamed: "flamesThrowerSplash.sks")!
let newX = flameThrowerSplash.position.x - 475
let newY = flameThrowerSplash.position.y + (zombie1.size.height * 0.7)
let newLocation = CGPointMake(newX, newY)
flameThrowerSplash.position = newLocation
flameThrowerSplash.targetNode = currentScene
let wait = SKAction.waitForDuration(0.5)
let pauseEmitter = SKAction.runBlock({self.flameThrowerSplash.particleBirthRate = 0})
let startEmitter = SKAction.runBlock({ self.flameThrowerSplash.particleBirthRate = 455})
let wait2 = SKAction.waitForDuration(0.5)
let run = SKAction.sequence([wait, startEmitter,wait2, pauseEmitter])
zombie1.runAction(SKAction.repeatActionForever(run))
您似乎不想让 flameThrowerSplash 成为一个场景 属性。
而不是这个
flameThrowerSplash = SKEmitterNode(fileNamed: "flamesThrowerSplash.sks")!
声明为新变量即可
let flameThrowerSplash = SKEmitterNode(fileNamed: "flamesThrowerSplash.sks")
然后就可以独立的给每个僵尸添加了。
您正在为每个新僵尸重新分配它。这就是它消失的原因。