该网站的新用户,但我过去使用过它,所以我觉得最好在这里提出我的问题,以便获得回复的最佳机会。
我正在处理的是一个对象,这是我最新应用程序的精灵,我需要检查它何时与另一个对象接触,在这种情况下,是一个会弯曲的隧道。
现在,我知道CGRectIntersectsRect,但是我看不出它有用,好像我有2个UIImages,它是“山”的顶部和底部,并说片断弯曲,没有怀疑精灵会触及“矩形”。
我需要的是当精灵撞到实际墙壁时触发的东西,但是我对Objective-C的有限知识对我的情况没有帮助。
我想有人会知道我能做些什么来解决这个问题,因为我知道这可能是一个简单的解决方案。
提前感谢大家!
答案 0 :(得分:2)
首先,我可能不会自己构建这些基本部分。对于iOS 7,您可以使用内置的SpriteKit。如果您想支持旧版本的iOS,请查看cocos2d(这也适用于iOS 7)。
但是对于这个问题,一种检测任意重叠的方法是将两个对象都绘制到一个缓冲区中并检查是否有任何重叠像素(例如,通过用纯红色绘制一个,用纯绿色绘制另一个,然后寻找具有两者的像素)。有关如何在Core Graphics中执行此类操作的讨论,请参阅Clipping a CGRect to a CGPath,其中提供了最简单版本的示例代码(检查矩形和曲线的交集),但同样的方法可以使用更多通常。请注意,如果您经常这样做,此绘图可能会变得昂贵,因此通常首先检查边界矩形是否重叠。这告诉你是否值得仔细观察。
但首先我要看一下SpriteKit。