两个图像碰撞时如何生成结束画面?

两幅图像碰撞时如何生成结束画面 我正在用一个非常敏感的计数器来跟一个火柴人做一个应用程序。 所以如果它击中这些尖峰,(UIImages)它将产生结束屏幕。 如何让应用程序检测到这个碰撞,然后生成一个结束画面。

我相信你知道这两个图像的原因,因为你需要绘制它们,所以你可以使用

bool CGRectIntersectsRect ( CGRect rect1, CGRect rect2 ); 

如果两个matrix有一个共享点,则返回YES

你没有宣布任何反应的事实并不重要。 你需要rects进行碰撞检测。 我假设你至less有火柴人的x和y坐标,你应该对他的身高和宽度有一些想法。 从问题标题看来,您似乎正在使用图像来绘制要检查碰撞的对象,因此您应该知道所使用图像的高度和宽度。 如果你没有这个信息,你不能在正确的地方画对象,你肯定不能检查碰撞。

您基本上想要使用您用于绘制对象的相同矩形。

一些代码示例:

如果你的坐标指向火柴人的中间,你可以使用如下的东西:

 if (CGRectIntersectsRect(CGRectMake(stickman.x-stickman.width/2, stickman.y-stickman.height/2, stickman.width, stickman.height), CGRectMake(spikes.x-spikes.width/2, spikes.y-spikes.height/2, spikes.width, spikes.height))) { // Do whatever it is you need to do. For instance: [self showEndScreen]; } 

如果你的坐标指向你的火柴人的左上angular,你可以使用:

 if (CGRectIntersectsRect(CGRectMake(stickman.x, stickman.y, stickman.width, stickman.height), CGRectMake(spikes.x, spikes.y, spikes.width, spikes.height))) { // Do whatever it is you need to do. For instance: [self showEndScreen]; } 

如果我可能给你一个build议,我build议把坐标和大小存储在一个CGRect中,以便每次检查碰撞时不必创build一个新的CGRect。