gpt4 book ai didi

ios - 多图像碰撞检测

转载 作者:行者123 更新时间:2023-12-01 17:10:20 25 4
gpt4 key购买 nike

这是问题

我在屏幕周围漂浮着5个球,它们的侧面,顶部和底部都有弹跳。多数民众赞成在伟大。

我现在想做的是解决其中任何一个相互冲突的问题。

我知道

 if (CGRectIntersectsRect(image1.frame, image2.frame)) 
{

}

但这只检查两个图像,我需要检查所有和每个。

香港专业教育学院到处检查,但找不到答案,只有其他人搜索相同的东西,有什么想法吗?

提前致谢

斯普里西

编辑:

即时通讯使用此来查找CGRect并将其存储在数组中
ball1 = NSStringFromCGRect(image1.frame);
ball2 = NSStringFromCGRect(image2.frame);
ball3 = NSStringFromCGRect(image3.frame);
ball4 = NSStringFromCGRect(image4.frame);
ball5 = NSStringFromCGRect(image5.frame);

bingoarray = [NSMutableArray arrayWithObjects:ball1,ball2,ball3,ball4,ball5,nil];

然后将其传递给碰撞检测方法
-(void)collision   {


for (int i = 0; i<[bingoarray count]-1 ; i++) {

CGRect ballA = CGRectFromString([bingoarray objectAtIndex:i]);

if (CGRectIntersectsRect(ballA, image1.frame)) {
NSLog(@"test");
}
}

我猜这应该检查一个球与其他所有球。

因此,第1球相对于其他球被检查,但没有对第2球进行检查。这附近有吗?

}

最佳答案

这是一个有趣的小数学问题,可以避免冗余。

您可以创建图像数组。并循环遍历,检查每个成员是否与任何后续成员发生冲突。

如果需要,我可以用代码进一步说明。

编辑我无法抗拒

// the images are in imagesArray

//where you want to check for a collision

int ballCount = [imagesArray count];
int v1Index;
int v2Index;
UIImageView * v1;
UIImageView * v2;
for (v1Index = 0; v1Index < ballCount; v1Index++) {
v1 = [imagesArray objectAtIndex:v1Index];
for (v2Index = v1Index+1; v2Index < ballCount; v2Index++) {
v2 = [imagesArray objectAtIndex:v2Index];
if (CGRectIntersectsRect(v1.frame, v2.frame)) {
// objects collided
// react to collision here
}
}
}

关于ios - 多图像碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com