SpriteKit中的触摸坐标似乎在Y轴上有奇怪的负偏移。
这就是我在场景中获取触摸位置的方法:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
NSLog(@"Touch location: %@", NSStringFromCGPoint(location));
}
如果触摸屏幕的最底部,您可以获得的最低Y坐标值约为8.5点,屏幕顶部有一个明显区域,可产生相同的最大Y坐标值。
有人遇到过同样的问题吗?它是SpriteKit中的错误还是我做错了什么?
我在GitHub上传了一个演示项目来说明问题:https://github.com/mirmanov/SKTouchDemo
注意:您只能在真实设备上重现此行为。在iOS模拟器上,一切似乎都能正常工作。