2016-05-31 23 views
1

我已經創造了一些粒子動畫與特定的精靈,如果我在函數中使用它們的正常工作:IOS斯威夫特SpriteKit:如何使用精靈在其他功能

override init(size: CGSize) 

我用下面幾行:

let sheet_particles = Particles() 

let particles_node = SKSpriteNode(texture: sheet_particles.particle000()) 
particles_node.name = kparticles 
particles_node.position = CGPoint(x: 500, y: 500) 
particles_node.zPosition = 5 
background.addChild(particles_node) 
particles_node.runAction(particlesAction) 

使它們出現在我的場景中。

我遇到的問題是,如果我嘗試在場景中的其他功能中使用它們,我看不到它們。

func panForTranslation(translation : CGPoint) { 
    let position = selectedNode.position 

    if selectedNode.name! == kpuzzleNodeName { 
     selectedNode.position = CGPoint(x: position.x + translation.x * 2, y: position.y + translation.y * 2) 


     switch selectedNode.name2 { 

     case "0": 
      if selectedNode.frame.intersects(NPuzzle13.frame) { 
       particles_node.position = selectedNode.position 

       particles_node.runAction(particlesAction) 
       NPuzzle13.hidden = false 
       selectedNode.removeFromParent() 
     } 

當條件「0」發生時,我看不到粒子精靈,但我正確地看到NPuzzle13。當我檢查particles_node節點的位置時,它的位置與節點selectedNode相等。除了粒子的可見度外,所有這些都是可以的......我錯過了什麼?謝謝。

+0

嗨Pierro787,誰是後臺父? –

+0

嗨亞歷山德羅,這是場景 – PGibouin

+0

很奇怪,你有沒有設置錨點到任何你的節點? –

回答

0

關於zPosition似乎一切正確。我沒有看到你的代碼中的任何錨點。

我覺得你的switch-case跳躍(不開除,不執行),因爲你檢查switch selectedNode.name2代替switch selectedNode.name