![]() |
1
3
有很多方法可以检测碰撞检测。如果您使用的是二维或三维环境,则所使用的方法将略有更改。还请记住,在建立碰撞检测系统时,要考虑到您可能希望在游戏中实现的任何物理(大多数下降3D游戏都需要),以增强其真实性。 简短的版本是使用边界框。或者换句话说,将世界上的每个实体都设置为一个框,然后检查框的每个轴是否与其他实体发生碰撞。 对于要测试冲突的大量实体,您可能希望签入八叉树。您只需将世界划分为扇区,然后只检查相同扇区中对象之间的冲突。 有关更多资源,您可以转到sourceforge并搜索一个开源碰撞检测和物理引擎的bullet dynamics引擎,或者您也可以查看 http://www.gamedev.net 在丰富的游戏开发主题上拥有丰富的资源。 |
![]() |
2
4
任何像样的二维图形库要么为从对齐的精灵到多边形到像素的所有内容提供自己的碰撞检测功能,要么有一个或多个良好的第三方库来执行这些功能。您对引擎/库/框架的选择应该决定您的碰撞检测选择,因为它们可能比您自己能够生成的更优化。 对阿莱格罗来说 Collegro . 对于SDL来说 SDL_Collide.h 或 SDL-Collide . 你可以使用 I_COLLIDE 使用OpenGL。DarkBasic有内置的碰撞系统,以及 DarkPhysics 对于非常精确的交互,包括碰撞。 |
![]() |
4
1
这个问题相当普遍。在二维游戏中有很多方法可以进行碰撞检测。知道你想做什么会有帮助。 不过,作为一个起点,有一些非常简单的方法可以在圆、矩形等之间进行检测。我不是gamedev.net的超级粉丝,但是对于这种检测,这里有一些很好的资源。一篇这样的文章是 here . 它涵盖了一些可能有助于您入门的基本材料。 基本的二维游戏可以使用矩形或圆形来“包围”屏幕上的对象。检测矩形何时重叠或圆何时重叠是相当直接的数学。如果你需要一些更复杂的东西(比如凸面艺术多边形),那么解决方案就更复杂了。同样,gamedev.net在这里可能会有所帮助。 但真的要回答你的问题,我们需要知道你想做什么?什么类型的游戏?你想碰撞什么类型的物体?您是否试图与屏幕边界等发生冲突? |
![]() |
5
1
碰撞检测系统的实现是一个复杂的问题,但你要考虑三点。
您可以通用地实现所有这些,并以多态方式指定宽分辨率和窄分辨率,或者在使用较低级别的语言时提供挂钩。 |
![]() |
6
0
什么之间的碰撞?这取决于你是否使用精灵,凹多边形,凸多边形,矩形,正方形,圆,点… |
![]() |
7
0
在二维中检查两个球之间的碰撞很容易。你可以用谷歌搜索它,但基本上你可以检查两个球的半径组合的长度是否大于或等于两个球的中心之间的距离。 然后你可以用圆球中心之间的单位向量,乘以圆球半径,找到碰撞点。 |
![]() |
heltonbiker · 在变形矩形网格中进行命中测试/查找交点 7 年前 |
|
Vuxer · 为什么我的乒乓球比赛中的球会这样? 7 年前 |
![]() |
Hope · R中的碰撞检测和接近 7 年前 |
![]() |
crazicrafter1 · Pygame列表冲突 7 年前 |
![]() |
carlos cerda diaz · 如何避免重复? 7 年前 |
![]() |
BeginnerDev · 如何将矩形添加到数组中? 7 年前 |
![]() |
Red · Java命中检测/对象之间的碰撞 7 年前 |
![]() |
Jack Richards · Sprite套件Swift中的碰撞检测 7 年前 |