Ios 如何检查两个非';t矩形?

Ios 如何检查两个非';t矩形?,ios,iphone,Ios,Iphone,该网站的新用户,但我在过去使用过它,所以我觉得最好在这里问我的问题,以获得最好的回复机会 我要处理的是一个对象,这是我最新应用程序的精灵,当它与另一个对象接触时,我需要检查它,在这种情况下,一个会弯曲的隧道 现在,我知道了CGRectIntersectsRect,但是我看不出这有什么帮助,好像我有两张UIImage,那是一座“山”的顶部和底部,并且说是弯曲的碎片,毫无疑问精灵会碰到“矩形” 我需要的是当精灵撞到实际的墙壁时触发的东西,但是我对Objective-C的有限知识对我的案例没有帮助 我

该网站的新用户,但我在过去使用过它,所以我觉得最好在这里问我的问题,以获得最好的回复机会

我要处理的是一个对象,这是我最新应用程序的精灵,当它与另一个对象接触时,我需要检查它,在这种情况下,一个会弯曲的隧道

现在,我知道了CGRectIntersectsRect,但是我看不出这有什么帮助,好像我有两张UIImage,那是一座“山”的顶部和底部,并且说是弯曲的碎片,毫无疑问精灵会碰到“矩形”

我需要的是当精灵撞到实际的墙壁时触发的东西,但是我对Objective-C的有限知识对我的案例没有帮助

我想有人会知道我能做些什么来解决这个问题,就我所知,这可能是一个简单的解决方案


提前谢谢大家

首先,我可能不会自己制作这些基本部件。对于iOS 7,您可以使用内置的。如果您想支持旧版本的iOS,请查看(它也适用于iOS 7)

但对于这个问题,检测任意重叠的一种方法是将两个对象都绘制到缓冲区中,并检查是否存在重叠像素(例如,将一个对象绘制为纯红色,另一个对象绘制为纯绿色,然后查找同时具有这两个像素的像素)。有关如何在核心图形中执行此类操作的讨论,请参见,其中提供了最简单版本的示例代码(检查矩形和曲线的交点),但同样的方法可以更普遍地使用。请注意,如果经常绘制此图形,可能会导致成本增加,因此通常先检查边界矩形是否重叠。这会告诉你是否值得费心仔细看一看


但首先我要看看SpriteKit。

这就是我们所说的非平凡问题。你用的是什么图形引擎?如何在屏幕上绘制/设置动画?这些精灵是UIImages,还是使用OpenGL或cocos2D之类的包装器?您的墙是否具有可以用线段和/或曲线描述的规则几何形状?你的雪碧呢?有一些示例代码显示了如何针对位图图像点击测试点,但是如果有两个位图,那么计算它们何时相交将非常昂贵。一般来说,这称为碰撞检测。基本上我自己设计了精灵,将其显示在UIImageView中,然后通过NSArray设置动画。至于墙壁,它们最初将采用8位的样式,在这里可以很明显地看到形成它的像素。我个人从未体验过SpriteKit,但我将在不久的将来进行查看。