XNA(Monogame)我需要一种简短的碰撞方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XNA(Monogame)我需要一种简短的碰撞方式相关的知识,希望对你有一定的参考价值。

我有一个看起来像这样的代码:

 /*Need  help here*/ 
if (car1.hitbox.Intersects(parkingLoot[0].hitbox) || car1.hitbox.Intersects(parkingLoot[1].hitbox))
        intersects = true;
    else
        intersects = false;

其中hitboxes是矩形。如您所见,数组中有2个parkingLoot对象,我检查了它们。但是,如果我有1000个parkingLoot对象?我不想使用“ for循环”来检查每个parkingLoot对象hitbox是否与汽车相交。

如何检测car1.hitbox是否与HITBOX对象的任何PARKINGLOOT相交

答案

您可以使用System.Linq扩展名在没有foreach的情况下遍历集合,如下所示:

var intersects = parkingLoot.Any(_ => car1.hitbox.Intersects(_.hitbox));

或者您可以使用Parallel.ForEach中的System.Threading.Tasks来并行遍历列表中的项目。

以上是关于XNA(Monogame)我需要一种简短的碰撞方式的主要内容,如果未能解决你的问题,请参考以下文章

XNA (MonoGame) 世界空间和物体运动

XNA(MonoGame)零异常

无法理解在 monogame/xna 中“发布”代码的工作原理

XNA,Monogame;有没有XACT的替代品?

在XNA / Monogame中使用Ray的视线

Monogame不绘制png图像