【发布时间】:2021-07-25 21:56:20
【问题描述】:
我正在使用 SpriteKit 为 Apple Watch 编写应用程序,因此我无法访问 touchesBegan 之类的功能,我必须使用 WKTapGestureRecognizer 来检测点击,没什么大不了的,但我在检测节点上的点击时遇到问题. 在我的 InterfaceController 中,我有:
@IBAction func handleTap(tapGestureRecognizer: WKTapGestureRecognizer){
scene?.didTap(tapGesture: tapGestureRecognizer)
}
在我的场景文件中,我有
func didTap(tapGesture:WKTapGestureRecognizer) {
let position = tapGesture.locationInObject()
let hitNodes = self.nodes(at: position)
if hitNodes.contains(labelNode) {
labelNode.text = "tapped!"
}
问题是点击手势识别器为我提供了触摸点的绝对坐标(例如 11.0、5,0),而我的节点相对于屏幕中心定位(因此它的位置甚至是 -0.99、-11.29虽然在屏幕的中心)因此点击不是在实际点击它时点击节点,而是当我点击屏幕的左上角时。我到处搜索,看起来这是这样做的方法,但我没有发现有人遇到同样的问题。该节点已通过编辑器添加。我做错了什么?
【问题讨论】:
标签: ios swift sprite-kit apple-watch wktapgesturerecognizer