我有一个可以用手指在屏幕上移动的物体。此对象是图像,小图像,如缩略图。
在屏幕上,我有一个背景图像,其中绘制了10个矩形。此矩形是背景图像的一部分。背景图片很笨,只是一个UIImageView。
每次缩略图经过10个区域中的一个区域时,我想播放10个声音,由背景上的10个矩形表示。每个区域都有自己的声音。
我所拥有的只是翻译缩略图的大小及其坐标(如原点,中心,宽度和高度)。我实时有原点(x和y)坐标。
关键是:如何检测翻译缩略图是否超过10个方格中的一个,考虑到一定的公差(例如+ - 10个像素)并发现它是哪个区域?
问题:由于我实时拥有原点坐标,我总是可以创建一个循环来检查这个值是否在10个矩形中的一个内,但这是CPU密集型的,因为循环将针对缩略图滚动的每个像素运行。
关于如何做到的任何其他想法?
感谢您的帮助。
答案 0 :(得分:1)
您可以按预定义的间隔而不是不断地轮询坐标。
这背后的想法是在主循环中引发(例如1秒)计时器。当计时器完成时,它会触发一个事件,您可以在该事件中查询当前位置。然后使用该值来检查它所在的矩形。
答案 1 :(得分:1)
我会使用一个计时器来触发一个方法,每隔.2-.5秒检查一次:
[NSTimer scheduledTimerWithTimeInterval:.2 target:self selector:@selector(checkPointInRects) userInfo:nil repeats:YES];
使用touchesBegan,移动,结束以缓存当前触摸并在checkPointInRects方法中引用它们。您可以使用CGRectContainsPoint来确定该点是否位于任何给定的矩形中。