gpt4 book ai didi

c# - 从通用列表中测试 BoundingBox

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:48 25 4
gpt4 key购买 nike

我想测试两个 BoundingBox 是否相交。我有一个列表:

List<BoundingBox> Mapa_BB = new List<BoundingBox>();

然后我将边界框添加到这个列表中,效果很好——我通过将它更改为一个字符串然后绘制它来测试它——所以我确信它们存在。 BoundingBox hero; 是我的英雄的边界框。

接下来,我做了一个函数来测试是否发生了碰撞:

public void Collision()
{
foreach (BoundingBox BB_map in Map_BB)
{
if (hero.Intersects(BB_map))
{ test = "true"; }
else
{ test = "false"; }
}
}

如您所见,如果发生碰撞,我想将字符串变量 test 设置为 "true";如果不是,则为 "false"。我会认为我的列表有问题,但如果我的英雄与列表中的最后一个边界框发生碰撞,那么它就可以正常工作;对于任何其他边界框,它不会。

最佳答案

如果你发现了一个相交的盒子,你需要打破foreach循环:

public void Colision()
{
foreach (BoundingBox BB_map in Map_BB)
{
if (hero.Intersects(BB_map))
{
test = "true";
break;
}
else
test = "false";
}
}

如果没有 break;,以下不匹配的框会将 test 设置回 "false"

关于c# - 从通用列表中测试 BoundingBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19383146/

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