2016-01-23 106 views
0

我建了一堵牆,磚頭不動,但我需要讓他們中的一個調用一些信息。下面這段代碼是內部的功能可能是應該有這樣的磚全球SKSpriteNode能識別手勢嗎?

let brk = SKSpriteNode(imageNamed: imgName) 
    if (imgName == "brickinfo"){ 
     brk.name = "brickinfo" 
    } 


    brk.position = CGPoint(x:CGRectGetMinX(self.frame)+brkx, y: CGRectGetMinY(self.frame)+brky) 
    if (imgName == "brickinfo"){ 
     let singleTap = UITapGestureRecognizer(target: self, action: Selector("ShowInfo")) 
     singleTap.numberOfTapsRequired = 1 
     brk.userInteractionEnabled = true 

     //brk.addGestureRecognizer(ShowInfo) //do not exist 
    } 

    brk.xScale = 0.2 
    brk.yScale = 0.2 

    addChild(brk) 

我使用這意味着他們SKAction所以,當我在上面點擊,觸摸開始被激發其他的運動圖像相同的代碼。他們都使用相同的代碼,添加一個名字addchild()。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    /* Called when a touch begins */ 

    for touch in touches { 
     let location = touch.locationInNode(self) 
     //675 
     //30 
     print(self.nodeAtPoint(location).name) 
     if let theName = self.nodeAtPoint(location).name { 

但「brickinfo」的名稱總是回來nil。 這磚圖像可以觸發touchesbegan? 謝謝

+0

有什麼區別:let touch = touches.first! 如果myNode.containsPoint(touch.locationInNode(self)){ print(「touched」) }並用於觸摸觸摸{0}位置= touch.locationInNode(self) – pierre

+0

好吧我會問另一個問題,我不會需要一個特定的手勢,只是一個觸摸,這觸摸觸摸不適用於靜態圖像的某些原因,但完美的圖像移動,現在沒有意義。如果它有一個名字,它會做一些事情。 – pierre

回答

0

好的我沒有找手勢,我想我需要添加手勢來觸發圖像,但我只需要讓這個圖像響應它的名字。在3-4天后,我看到了許多不同的方式來實現它,我找到了解決方案,這很容易,但沒有爲這個特定的磚塊設置zposition。當然,這會帶來它自己的問題。對不起,問題的標題。 xcode是否帶有3D立體圖層視圖? 謝謝