我试图让它成为我的游戏在我触摸场景中的节点时识别,除非我使用下面的代码,我认为这样做我想要的,我的应用程序无法正确识别节点的位置
我点击屏幕的其余部分打印出我正在触摸的节点的名称,结果发现我的应用认为节点位于与实际位置不同的位置(x值是正确的y值价值很高)
你看到有什么不对吗?
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch in (touches as! Set<UITouch>) {
var TouchlocationEnd = touch.locationInView(self.view!)
let touchedNode = self.nodeAtPoint(TouchlocationEnd)
var name = touchedNode.name
println(name)
if name == "start"{
var scene = PlayScene(size: self.view!.bounds.size)
scene.scaleMode = .AspectFill
self.view!.presentScene(scene)
}
}
}
答案 0 :(得分:2)
根据Apple的文档,nodeAtPoint()函数采用节点坐标系中的一个点&#34;。但你发现的观点是视图中的位置,它不一定与你在这里继承的任何节点在同一个坐标系中。
换句话说,我猜测&#34; self.view&#34;的坐标系统。不同于&#34; self&#34;的坐标系。尝试这样的事情(未经测试):
let touchPoint = touch.locationInNode( self )
let touchedNode = self.nodeAtPoint( touchPoint )