使用SpriteKit它在触摸屏幕时不会返回正确的信息

时间:2015-11-23 05:31:09

标签: ios swift sprite-kit skspritenode uitouch

我正在使用SpriteKit制作游戏,但在它完成之前,但最近在我使其更加合规之后,出现了一些错误。 我在左角有一个按钮,当我触摸按钮时,它没有显示任何内容,所以在我触摸屏幕时打印出信息后,我发现它返回的区域为零,甚至没有返回背景信息,纹理是零,但如果我触摸其他区域,一切顺利,信息都很好。所以这里有什么不对,我不明白。

以下是我在toucheBegan函数中编写的一些代码

     let touchLocation = (touches as NSSet).anyObject()?.locationInNode(self)

    let targetNode = self.nodeAtPoint(touchLocation!)




    print(targetNode)

然后控制台返回这些 :name:'(null)'texture:['nil'] position:{0,0} scale:{1.00,1.00} size:{1136,640} anchor:{0.5,0.5} rotation:0.00

它只发生在这个按钮上,我不知道为什么

声明按钮的代码:

    goRightButton = SKSpriteNode(imageNamed: "GorightButton1")
    goRightButton.anchorPoint = CGPoint(x: 1, y: 0)
    goRightButton.position = CGPoint(x: self.size.width - 200, y: 0)
    goRightButton.name = "Right"
    goRightButton.zPosition = -8
    self.addChild(goRightButton)

如果我在iPhone 6上运行它,没有按钮可以工作!发生了什么 ?如果我用IOS9在iPod上运行,它运行正常。

1 个答案:

答案 0 :(得分:1)

问题出在这一行

goRightButton.zPosition = -8

zPosition更改为大于零,因为SKNode的{​​{1}}高于zPosition

goRightButton