首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2D平台AABB碰撞问题

2D平台AABB碰撞问题是指在二维平面上,两个矩形(A和B)之间的碰撞检测问题。AABB是Axis-Aligned Bounding Box的缩写,即轴对齐边界框。在游戏开发中,碰撞检测是非常重要的,因为它可以控制游戏对象之间的交互。

以下是完善且全面的答案:

名词概念:

AABB碰撞问题是指在二维平面上,两个矩形(A和B)之间的碰撞检测问题。

分类:

AABB碰撞问题属于碰撞检测问题的一种。

优势:

AABB碰撞问题的检测方法简单,计算效率高,适用于大量矩形之间的碰撞检测。

应用场景:

AABB碰撞问题广泛应用于游戏开发、物理模拟、图像处理等领域。

推荐的腾讯云相关产品:

腾讯云游戏加速平台、腾讯云游戏防沉迷服务、腾讯云游戏直播服务、腾讯云游戏安全服务。

产品介绍链接地址:

腾讯云游戏加速平台腾讯云游戏防沉迷服务腾讯云游戏直播服务腾讯云游戏安全服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

这个知识点99%的前端都没有听过,不信你进来看?

Boxes,中文直译出来就是“轴对齐包围盒”,参考下MDN的解释: 如图所示,AABB呢,其实是一个立体几何概念,起源于数学,但成熟于游戏开发,主要是用于解决3D空间里不同实体的碰撞检测问题。...总之,AABB是3D问题的基础,虽然AABB本身不是什么高难度的东西,但是你如果不知道这个概念,那么你面对3D空间的很多问题都是抓瞎的,很容易陷入用2D思维解决3D问题的陷阱,进而产生很离谱的错误。...之前我写过一篇文章《当前端遇到了自动驾驶》,非常详细的介绍了我在这个项目里遇到的一个3D问题的整体解决过程。...恰好最近又遇到了一个又意思的场景:碰撞检测,我感觉这东西又可以跟大家聊聊了。...有多少前端小伙伴是第一次听说AABB的?评论区告诉我。

16840

物理引擎

Player 10)刚体引擎 作者主页:http://lab.polygonal.de/motor_physics/ APE  最简单 http://www.cove.org/ape/ FOAM - 2D...Rigid Body Physics Engine http://code.google.com/p/foam-as3 glaze - 2D Rigid Body Dynamics & Game Engine...AABB(axially aligned bounding box)(Box2D.Collision.b2AABB类)这种最简单的方式,采用一个描述用的立方体或者球形体包裹住物体对象的整体(或者是主要部...分),之后根据包装盒的距离、位置等信息来计算是否发生碰撞.       2D游戏中有许多图片都是方方正正的,所以我们不必把碰撞的范围画成一个圆的,而是画成一个方的。...这个检测方法就叫AABB碰撞检测,        游戏中已经运用的非常广泛了,因为其速度快,效率高,计算起来非常方便,精确度也是可以忍受的。  做到这一步,许多游戏的需求都已经满足了。

1.6K50

物理引擎的碰撞分组,适用2D和3D

为了降低开发者上手的门槛,今天就来讲一讲,如何通过位运算来理解碰撞组的碰撞关系。 设置碰撞2D物理的碰撞组是设置刚体的category(碰撞类别)属性。...3D物理的碰撞组是设置碰撞器的collisionGroup(所属碰撞组)属性。 无论是2D还是3D,设置碰撞组的共同规则就是采用2的N次幂作为碰撞分组的值。...所以,设置碰撞组,比较容易理解,只要是2的N次幂值,都可以用于设置碰撞组,成为区分不同碰撞组的ID。 指定可碰撞的组 2D物理通过设置刚体的mask(掩码)属性来指定可与哪些组进行碰撞。...例如你的组ID是2,想与碰撞组值为8的碰撞,那mask(2D)或canCollideWith(3D)的值设置为8即可。 这样,碰撞组2就只会与碰撞组8发生物理碰撞。...所以2D刚体的mask属性值为3的时候,是1与2的按位或运算结果,也就mask为3可以与1和2的碰撞分组进行碰撞

1.1K10

JAVA智能设备基于OpenGL的3D开发技术 之AABB碰撞检测算法论述

现有许多3D碰撞检测算法,其中AABB碰撞检测是一种卓有成效而又经典的检测算法,本文将为读者详细论述AABB碰撞检测的各各技术点。...,那样的运算量对手机等设备来讲是不可完成的,所以移动设备上使用的碰撞检测不可能使用 太精确的检测,而且对于3D碰撞检测问题,还没有几乎完美的解决方案。...第二部分、J2ME技术: 1、体系结构 为 满足消费者和嵌入式市场不断发展和多样化的需求,SUN公司的J2ME平台采用模块化、可扩展的设计。...因为AABB总是与坐标轴平行,不能在旋转物体时简单地旋转AABB盒体,而是应该在每一帧都重新计算。如果知道每个对象的内容,这个计算就不算困难了,也不降低游戏的速度。然而,还面临着精度的问题。...为了简化起见,可以把上述问题先归结到某一维,然后再将三维结合到一起。假设把问题投影到X轴,如图1-8所示。 ?

1.1K100

粗略的物体碰撞预测及检测

在机器人局部路径规划中,需要实时躲避运动或者静态的障碍物,这个过程涉及到碰撞检测这个问题,本文主要讨论这个问题。   ...碰撞检测问题也是游戏开发中经常遇到的问题,一个游戏场景中可能存在很多物体,它们之间大多属于较远位置或者相对无关的状态,那么一个物体的碰撞运算没必要遍历这些物体,我们可以使用一个包围一个或多个物体的多边形来讨论碰撞问题...尽管非常精确的碰撞检测算法可以精确地表示和解决碰撞问题,但是在路径规划初期对碰撞只需要有一个初步的估计,比如是否会发生碰撞碰撞的大概程度如何,以免把大量的精力浪费在碰撞检测问题上,从而降低了在其他方面的注意力...为方便理解,如下图所示,以二维平面上的两个圆形为例建立相对运动坐标系,讨论碰撞检测问题,可以扩展到3维空间的球体中。...实现代码如下,其中min和max数组是另一个AABB的最小点和最大点,最后返回碰撞检测结果和碰撞部分的AABB

1.7K60

粗略的物体碰撞预测及检测

在机器人局部路径规划中,需要实时躲避运动或者静态的障碍物,这个过程涉及到碰撞检测这个问题,本文主要讨论这个问题。   ...碰撞检测问题也是游戏开发中经常遇到的问题,一个游戏场景中可能存在很多物体,它们之间大多属于较远位置或者相对无关的状态,那么一个物体的碰撞运算没必要遍历这些物体,我们可以使用一个包围一个或多个物体的多边形来讨论碰撞问题...尽管非常精确的碰撞检测算法可以精确地表示和解决碰撞问题,但是在路径规划初期对碰撞只需要有一个初步的估计,比如是否会发生碰撞碰撞的大概程度如何,以免把大量的精力浪费在碰撞检测问题上,从而降低了在其他方面的注意力...为方便理解,如下图所示,以二维平面上的两个圆形为例建立相对运动坐标系,讨论碰撞检测问题,可以扩展到3维空间的球体中。 ?   ...运动多面体   在使用单步碰撞检测时,存在时间步长较大时会发生两个物体完全穿透而算法却未检测出来的问题,如下图所示。

2.6K81

碰撞检测的向量实现

注:1、本文只讨论2d图形碰撞检测。2、本文讨论圆形与圆形,矩形与矩形、圆形与矩形碰撞检测的向量实现 前言 2D游戏中,通常使用矩形、圆形等来代替复杂图形的相交检测。...AABB与OBB的区别在于,AABB中的矩形的其中一条边和坐标轴平行,OBB的计算复杂度要高于AABB。根据不同的使用场景,可以用不同的方案。 ?...两矩形相交 两矩形都轴对称AABB ?...想象一下两个矩形A和B,B贴着A的边走了一圈,B的矩形中心的轨迹是一个新的矩形,这样就简化成新矩形与B中心点这一点的相交问题,又因为点可以看成是半径为0的圆,所以问题又转换为圆形和矩形相交。 ?...——常见的2D碰撞检测 https://aotu.io/notes/2017/02/16/2d-collision-detection/index.html 码农干货系列【1】--方向包围盒(OBB)碰撞检测

1.4K10

用 Cocos Creator 制作平台跳跃游戏

前言 平台跳跃类游戏如《超级马里奥》《Celeste蔚蓝》等,非常考验玩家的操作和判断,有着非常本真的游戏乐趣。这类游戏乍一看,挺容易做的,但是要做好却不太容易。...今天,我将使用 Cocos Creator v2.1.2 演示如何灵活快速地使用 Cocos Creator 来制作这类经典的横版平台跳跃类游戏,主要目的是帮助大家熟悉组件的用法,横版游戏实现方法很多,...,地面,方块,金币,甲壳虫,水,蘑菇,创建碰撞组和碰撞组来约束物体彼此之间碰撞规则。...(other, self) { // 1st step // get pre aabb, go back before collision var otherAabb = other.world.aabb...源码下载: https://github.com/xianyinchen/creator_teach 在学习和使用 Cocos Creator 过程中有什么问题和建议,欢迎移步至 Cocos 中文社区进行交流

2.1K40

【笔记】《游戏编程算法与技巧》7-12

6个面表示盒子, 且盒子随包围的目标的旋转而旋转 胶囊体: 常用于人形角色, 作为AABB的替代....通常直接对比平方的结果 AABBAABB: 检测无交叉速度更快, 以下四个条件(2D形式)只要满足了一个就能返回当前AABB无交叉, 都不满足时就交叉了....(2D则是四叉树, 或使用更复杂的二进制空间分割BSP)进行分区, 递归分区直到一个叶子只保留一个对象, 然后从外到内以树的节点形成的包围体作为单位进行碰撞检测从而有序筛去大部分无用的对象 基于物理的运动..., 这种方法效果很突兀 另一种方法是用一个物理对象表示摄像机 还有一种流行的方法是让阻挡在中间的对象淡出或消去, 比较自然 相机拣选: 鼠标选择画面中一个2D点, 然后将z补为0和1, 正好是前后投影面...无连接, 不可靠, 因此会出现丢包问题导致游戏体验变差. 而且为了在不可靠传输中保证一定的顺序性, 通常在UDP数据包中增加一些额外数据, 例如顺序号, 让接收者可以对顺序可靠性增加一定控制.

2K20

开源公告|TGFX-跨平台 2D 绘图引擎

1、项目简介 TGFX(Tencent Graphics) 是一个跨平台的纯 GPU 绘图引擎,提供了完备的图片,矢量和文本的 2D 绘制能力,目前已支持:iOS, Android, macOS, Windows...https://github.com/Tencent/libpag Hippy动态化框架:https://github.com/Tencent/Hippy 2、诞生背景 谷歌的 Skia 是一个非常优秀的 2D...我们在 TGFX 中彻底解决了这个耦合的问题,打造出了一个纯 GPU 的绘图引擎,这里就节省了大概一半的包体。...除了工作量大外这部分还是兼容性的重灾区,要处理很多类似 iOS 中退到后台执行 OpenGL 的特殊情况,以及线程安全问题。...为了避免每个业务都要重新经历一遍这些兼容性问题和坑点,我们在设计 TGFX 的调用流程时,在头尾补充上了 Skia 没有的 Device & Window 系统,并把在各个平台积累的GPU适配经验都沉淀到了这个模块中

97920

关于包围盒,你需要知道的那些事

包围盒的作用 一种 高效 判断两个图形是否碰撞的方案,以降低精度为代价。退一步说,即使要进行精准的碰撞判定,也可以用包围盒提前发现图形不可能相交,避免后续的高昂运算。...判断两个 AABB 包围盒是否发生碰撞很简单: const isBboxIntersect = (bbox1, bbox2) => { return ( bbox1.minX <= bbox2...分离轴定理专门用来进行凸多边形之间的碰撞检测,矩形也是凸多边形,所以可以用。...一种简单的方式是基于 OBB 的 4 个点重新计算出一个 AABB,如下图。 AABB 并不要求紧密包裹图形,所以并不是一定是最小外接矩形(MBR)。...对此,如果想提高 AABB 的精度,可以用几何算法去求 MBR 作为图形的 AABB。 但涉及到平面几何,不同图形的算法不一样。

9110

图形编辑器开发:基于相交策略选中图形

(通过降维,将大问题拆分成小问题) 我们会对两个凸多边形做投影,投影到的线称为 “分离轴”。 分离轴基本选择的是两个图形的每条边对应的法向量。...矩形碰撞,特殊的分离轴定理碰撞 不知道你发现没有,从分离轴线的角度去看,两个没有旋转矩形的相交判断,其实是一个特例。...我们 “旋转回来”,将图形掰正,选区矩形产生了旋转角度,计算选区矩形的 AABB 包围盒,再进行矩形对比就好了。...这样,图形的分离轴的投影也对比完了,所有的分离轴都对比了,就能判断出选区和图形的 OBB 包围盒是否碰撞了。 甚至都不用向量点乘。 OBB 相交判断代码实现 下面给出代码实现。...for (const el of elements) { let isSelected = false; // 是否被选中到 // 首先做 AABB 碰撞检测 // 绝大多数场景下,只有少数图形和选区有相交

13930

使用物理引擎Box2D设计类愤怒小鸟的击球游戏--基本架构设置

我们都玩过愤怒的小鸟,该游戏一大特点是,两物体碰撞后,它会模拟现实世界物体碰撞后的反弹效果,因此游戏特别具有体感和逼真感,本节我们利用物理引擎Box2D,制作一个类似愤怒小鸟类型的碰撞游戏。...游戏的基本玩法是,用鼠标点击小球,移动鼠标选择小球的发射方向,松开鼠标按钮后,小球按照鼠标指向的方向发射出去,一旦小球与障碍物碰撞后,它会像现实世界那样反复弹跳,如果一系列碰撞后,小球能停留在木架上,游戏就算过关...这个游戏的开发特点在于,我们充分利用物理引擎的帮助来实现像现实世界中的碰撞效果,如果没有引擎,我们必须自己计算小球各个方向的加速度,摩擦力,碰撞后的相互作用力等,那是非常复杂的。...// 设置用于调试目的的图形绘制 showDebugDraw () { // 为了确保设计的正确性,我们可以把图形先进行调试绘制 // 确定没问题后再把图形绘制到画布里...) // 设置调试画布 debugDraw.SetSprite(document.getElementById('debug-canvas').getContext('2d

1.5K50

HTML5实现3D和2D可视化QuadTree四叉树碰撞检测

QuadTree常用于空间数据库索引,3D的椎体可见区域裁剪,甚至图片分析处理,我们今天介绍的是QuadTree最常被游戏领域使用到的碰撞检测。...共享同一数据模型DataModel,同时呈现QuadTree算法下的2D和3D碰撞视图效果:http://v.youku.com/v_show/id_XODQyNTA1NjY0.html http://...,也就是ht.Node平时显示默认的蓝色,当互相碰撞时将改变为红色。...需要注意从quadtree.retrieve(rect)获取需要检测的矩形对象数组中会包含自身图元,同时这些仅仅是可能会碰撞的图元,并不意味着已经碰撞了,由于我们例子是矩形,因此采用ht.Default.intersectsRect...除了碰撞检测外QuadTree算法还有很多有趣的应用领域,有兴趣可以玩玩这个 https://github.com/fogleman/Quads ?

63060
领券