当两个图像发生碰撞时如何生成结束屏幕。我正在制作一个带有一个火柴人的应用程序,你用一个非常灵敏的重量计。因此,如果它击中这些尖峰,(UIImages)它将生成结束屏幕。如何让应用程序检测到此碰撞,然后生成结束屏幕。
答案 0 :(得分:0)
我确定你知道这两张图片的矩形,因为你需要绘制它们才能使用
bool CGRectIntersectsRect (
CGRect rect1,
CGRect rect2
);
如果两个rects具有共享点
,则返回YES答案 1 :(得分:0)
您尚未宣布任何要求并不重要。你需要rects进行碰撞检测。我假设你至少拥有火柴人的x和y坐标,你应该对他的身高和宽度有一些了解。从问题标题来看,您似乎正在使用图像绘制要检查碰撞的对象,因此您应该知道正在使用的图像的高度和宽度。如果您没有此信息,则无法在正确的位置绘制对象,并且您当然无法检查是否存在碰撞。
您基本上想要使用与绘制对象相同的rects。
一些代码示例:
如果您的坐标指向火柴人的中间,您将使用以下内容:
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];
}
如果您的坐标指向火柴人的左上角,您将使用:
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];
}
如果我可以给你一个建议,我建议将坐标和大小存储在CGRect中,这样你就不必在每次检查碰撞时都创建一个新的CGRect。