29得票10回答
广义相撞检测方法?

我正在开发一个2D物理引擎,希望添加广义相撞检测,但我只知道2或3种方法: 对每个物体都进行相互检测 (O(n^2) 复杂度) 扫描和修剪(排序和扫描) 关于二进制空间分割的某些内容(不确定如何实现) 但是肯定还有更多选项,对吗?它们是什么?每个算法可以提供基本描述或指向其描述的链接吗...

26得票5回答
无限制地随机移动物体而不发生碰撞

我有一个应用程序,需要在屏幕上以随机方式移动许多对象,并且它们不能相互碰撞。我正在寻找一种算法,允许我生成不会产生碰撞的路径,并可以无限期地继续移动(即:对象继续在程序中移动,直到用户驱动的事件将其从程序中删除)。 我不是游戏程序员,但我认为这似乎是一个AI问题,你们可能闭着眼睛就能解决。根...

24得票4回答
老游戏如何检测墙壁、地板和天花板的碰撞?

我一直在从stackoverflow和其他网站上阅读有关游戏中碰撞检测的文章。很多文章都谈到BSP、边界椭圆、积分等。但是在NES上,他们成功地实现了游戏中的地面和墙壁碰撞检测,我很难相信他们会做出许多计算来检测墙壁碰撞。 我猜我的问题是,在由瓷砖组成的关卡中,像马里奥和洛克人这样的游戏如何...

23得票5回答
如何在平移/旋转后重新计算轴对齐的边界框

当我首次载入对象时,我会使用最大和最小的(x,y,z)点计算初始AABB。但是这是在对象空间中完成的,而且对象会在世界中移动,更重要的是旋转。 每次对象被平移/旋转时,如何重新计算新的AABB?这基本上会在每一帧都发生。如果这样做会非常耗费资源来重新计算新的AABB,则有什么替代方案吗? ...

23得票3回答
错误:取临时变量的地址[-fpermissive]

我已经花了几个小时研究这个问题,但一无所获。基本上我有struct rectangle { int x, y, w, h; }; rectangle player::RegionCoordinates() // Region Coord { rectangle temp; ...

22得票7回答
在运行时更新网格碰撞器的替代方案?

我正在制作一个游戏,用户在运行时生成网格(一直都在),因此网格具有许多顶点,在同一时间内有一个游戏对象-玩家需要在运行时生成的网格区域内触发事件。 这个游戏中的相机是3D的,但是这个生成的网格是平面的。在我的附图中,我展示了这个平面视图,以更好地展示它的外观。 现在,我每隔几秒钟更新一次网...

22得票1回答
使用JavaFX检查形状的碰撞

我正在尝试进行一些碰撞检测。为此,我使用简单的矩形Shape并检查它们的Bound以确定它们是否发生了碰撞。尽管检测并没有像预期的那样工作。我已经尝试使用不同的方法来移动对象(relocate,setLayoutX,Y),以及不同的边界检查(boundsInLocal,boundsInParr...

21得票5回答
JavaScript与正六边形的点碰撞检测

我正在创建一个基于HTML5画布的六边形网格系统,当画布被点击时,我需要能够检测到网格中的哪个六边形被点击了。 数小时的搜索和尝试我的方法都没有结果,从其他语言移植的实现只是让我感到困惑,我的大脑已经变得迟钝。 网格由如下图所示的扁平顶部的正六边形组成: 实际上,对于给定点和在此图像...

21得票2回答
限界椭圆

我被分配了一个图形模块的任务,其中一部分是计算任意形状集合的最小包围椭圆。椭圆不必轴对齐。 这个任务是在Java(呃)中完成的,使用AWT形状,所以我可以使用所有形状提供的工具来检查对象的包含/交集。

21得票5回答
运动物体的空间数据结构?

我想知道处理大量移动对象(球体、三角形、盒子、点等)的最佳数据结构是什么?我试图回答两个问题,最近邻和碰撞检测。 我知道传统上,类似R树的数据结构用于最近邻查询,Oct/Kd/BSP用于处理静态对象或极少数移动对象的碰撞检测问题。 我希望能找到更好的解决方案。 非常感谢您的帮助。