7得票1回答
如何避免浮点数误差在点-多边形滑动碰撞检测中的影响

我正在尝试编写一个函数来处理我正在编程的游戏中的运动。我的代码几乎能够正常工作,但有一些情况它会出现问题。 我编写了一个最小演示示例,如下所示。在这个示例中,我正在尝试计算一个由点和移动向量表示的物体的移动路径,并将其与多边形集合进行碰撞检测,这些多边形被分解为线段进行测试。当该物体与线段相...

8得票3回答
TDD和游戏物理学

我正在玩一个小游戏项目,由于我在TDD方面经验不足,因此我希望能得到一些专家对几件事情的意见。 首先,我很早就意识到TDD似乎并不适合游戏开发。关于这个问题,意见似乎相当分歧。我的最初的无知看法是,TDD似乎非常适合所有游戏逻辑。我自认为任何处理视频输出和声音的东西都会被抽象成类,并进行视觉...

7得票2回答
如何计算炸弹爆炸区域?

我正在开发一款游戏,假设玩家A在位置x=100,y=100放置了一颗炸弹,爆炸半径为100个单位……对我来说很容易找到所有在炸弹爆炸冲击波范围内的“物品”(只需要检查它们与炸弹的距离是否小于100)。 但现在我想考虑游戏中的障碍物,这些障碍物是方形的,始终是64*64像素,始终与轴对齐(不旋...

21得票8回答
如何防止碰撞体相互穿透?

我在控制游戏对象时遇到了一个问题,无法将它们保留在一个固定的空间内。当它们到达边缘时,会有一些瞬间的阻力,但然后它们就会穿过墙壁。 我正在使用玩家的 Box Collider 以及关卡墙壁的 Mesh Collider。我遇到了两个问题:一个是玩家角色(太空飞船)由玩家控制移动,另一个是由玩...

8得票3回答
时间修正的Verlet数值积分公式

以下是翻译的结果: 在网络上有一个常用的Verlet积分公式,由Johnathan Dummer提出,称为时间校正Verlet。然而,我已经阅读了几篇论坛帖子,发现在某些条件下,人们使用此公式会得到奇怪或意外的结果。 Johnathan Dummer的公式如下: x1 = x + (x ...

7得票3回答
AABB碰撞解决方法中滑动的侧面问题

所以,我正在重新发明轮子(并学到了很多),尝试制作一个简单的物理引擎用于我的游戏引擎。我一直在搜索互联网,尝试修复目前的问题(但不成功)。有很多相关资源可供使用,但是我找到的所有内容似乎都不能适用于我的情况。 简而言之,当两个矩形相撞时,碰撞解决方法在某些角落处无法正常运作。失败的方式根据矩...

12得票6回答
AndEngine游戏的优化

我在我的游戏中使用java + AndEngine。 在游戏中,我遇到了一些卡顿问题。我查阅了相关资料并发现了一些优化游戏性能的方法: 避免在游戏的主要操作中调用GC(垃圾回收器): a)不要在游戏过程中创建对象; b)不要创建不必要的对象; 优化重复执行的代码。 我已经按照这些方法...

20得票6回答
在Swift中的SpriteKit物理引擎——球体滑向墙壁而不是反弹

我一边学习SpriteKit(使用Ray Wenderlich等人的iOS Games by Tutorials),一边基于Breakout创建了一个非常简单的测试游戏,以查看我是否能够应用所学的概念。我决定通过使用.sks文件创建精灵节点并将手动边界检查和碰撞替换为物理体来简化代码。 然而...

7得票2回答
当shouldEnableLimits为true,且设置了lowerAngleLimit和upperAngleLimit时,SKPhysicsJointPin出现不正确的行为。

我目前有一个布娃娃的图形,它由一个父节点(没有附加物理体)和许多子节点组成,每个子节点都包含一个圆形物体。这些圆形物体使用SKPhysicsJointPin相互连接,如下所示: 每个SKPhysicsJointPin都有shouldEnableLimits = true,我目前为lowe...

8得票2回答
拖动 div 元素以主导点为中心(就像船在水中一样)

我想让一个 div 像船在水中一样拖动,但是我在旋转方面遇到了一些问题。 这是我目前的代码: jsFiddle JavaScript var start, stop; $('#canoe').draggable({ containment: '#board', curso...