2015-11-09 148 views
1

我有一個非常簡單的粒子的設置,其中雨顆粒層是在我的整個SKScene的頂部。現在,我只想觸摸該層下面的按鈕和對象。我如何通過將這個圖層保持在最高z位置來實現這一點。 (下面的代碼)觸摸通過顆粒層

let rainParticlePath = NSBundle.mainBundle().pathForResource("myRainParticles", 
      ofType: "sks") 

let rainEmitter = NSKeyedUnarchiver.unarchiveObjectWithFile(rainParticlePath!) 
      as! SKEmitterNode 

rainEmitter.position = CGPointMake(0,screenSize.height) 
rainEmitter.zPosition = 200 
rainEmitter.userInteractionEnabled = true 

self.addChild(rainEmitter) 

回答

2

使用nodesAtPoint:讓位於您感動,包括你的粒子層下面的所有節點的SKNode

例如:

let nodes = self.nodesAtPoint(touchLocation) 
for node in nodes { 
    if node.name == "button" { 
     // Do something to your 'button' 
    } 
    else if node.name == "object" { 
     // Do something to your 'object' 
    } 
} 
+0

沒關係,謝謝你,這個工程。儘管我現在有很多if語句,但只需點擊一下即可。是否有另一種方法來防止發射器接觸到觸摸點? – keptn