我在检测不同视图的触摸碰撞时遇到了一些问题。我已将MyView标记设置为1,因此在if语句中我将检测标记是否为1以外的其他内容,以获取信息,如果我的手指触摸了MyView中的任何其他视图。
在touchesMoved中,我正在检测手指在屏幕上的移动碰撞,如:
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint p = [touch locationInView:self];
MyView = [self hitTest:p withEvent:nil];
if(MyView.tag =! 1)
{
NSLog(@"Other view detected");
}
}
此代码工作正常,直到我更快地移动手指。我想,如果快速移动手指,并非所有位置都被检测到。这就是框架的工作原理。因此我想到了一些其他的选择,比如Bresenham的线条算法,以获得所有位置。但是这个选项有点慢,有时也没有检测到其他视图。
我正在开发类似于迷宫游戏的项目,我正在检测我的手指是否撞到了墙壁。这不是真正的游戏,但我想用SpriteKit制作它,但将所有节点定位到正确位置真的太过分了。 真的很酷,我可以在界面构建器中定位视图,并可以构建带有视图的迷宫。
我需要一个建议或解决方案,我应该怎么做。是否有其他框架,即返回手指移动的所有位置?或者我应该使用像SpriteKit这样的框架吗?