首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查多个重叠的精灵

检查多个重叠的精灵
EN

Stack Overflow用户
提问于 2016-11-13 15:14:01
回答 1查看 119关注 0票数 0

我刚刚开始探索用于移动游戏的CocosSharp库,并且不知道是否有更容易的方法来检测屏幕上的精灵之间的冲突。

我看过一些关于碰撞的教程,但是找不到关于多个精灵碰撞的东西。

我正在创建简单的三到四个球,在屏幕上弹跳,如果它们碰撞,我想要弹出它们。在教程中,他们使用BoundingBox.IntersectRect方法来检测碰撞,但是对于屏幕上的两个元素来说,这是可以的:

代码语言:javascript
复制
bool doesBallOverlap = ball1.BoundingBoxTransformedToParent.IntersectsRect(ball2.BoundingBoxTransformedToParent);

但我认为,如果屏幕上有多个元素,在我的例子中,3-4球,这是一种过度杀戮。如何有效地检查它们之间的碰撞?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-13 17:59:15

来自Check if multiple rectangles intersect

如果以矩形的形式获得所有边框,您可以在这里使用

代码语言:javascript
复制
bool CheckIfAllIntersect(IEnumerable<Rect> rectangles)
{
    return rectangles.Aggregate(rectangles.FirstOrDefault(), Rect.Intersect) != Rect.Empty;
}


bool CheckIfAnyInteresect(IEnumerable<Rect> rectangles) 
{
    return rectangles.Any(rect => rectangles.Where(r => !r.Equals(rect)).Any(r => r.IntersectsWith(rect)));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40575370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档