我正在为iPad进行拖放活动.我有一个矩形.png图像(参见名为obj2的图像).当我将obj1仅拖动到矩形的黑色部分时,它应该做出反应.
if (CGRectIntersectsRect(obj1.frame,obj2.frame)){ NSLog(@" hit test done!! ");}
现在,即使在透明区域,这段代码也会进行热门测试.如何防止这种情况发生?
提前致谢.
问候,
兰詹
有些背景,请参阅Clipping a CGRRect to a CGPath.
首先,创建一个仅Alpha的位图图像.这在上面的链接中解释.
接下来,使用CGContextClipToMask()将上下文剪辑到其中一个图像.
现在,将您的其他图像绘制到上下文中.
最后,搜索位图数据以查找任何彩色像素(请参阅上面的链接以获取示例代码).
如果任何像素着色,则存在一些重叠.
另一种类似的方法(可能实际上更快)是将每个图像绘制到其自己的仅Alpha CGBitmapContext中.然后遍历每个上下文中的像素,看看它们是否同时都是> 128.
总结以上是内存溢出为你收集整理的objective-c – iOS中不均匀形状的碰撞检测全部内容,希望文章能够帮你解决objective-c – iOS中不均匀形状的碰撞检测所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)