当前位置: 首页 > 知识库问答 >
问题:

是什么导致物理引擎的关节撕裂?

阚通
2023-03-14

我将保持简短,知道我所说的是2009年在AS3的Box2d上发生的,今天也发生在一个完全独立的JavaScript库p2 physics中。

你会看到这样的结果:关节分离并变得有弹性。

这个问题阻止了我用物理来做任何有趣的事情。球和铁链,弹射器,叉车,破布娃娃,蜘蛛人射击网,2D车辆.....

禁忌似乎是多余的,不稳定。我认为一个物理引擎对于愤怒的小鸟,或者坠落的积木是很好的,但是当你加入约束的时候,这个项目就变成了一个适合破碎的演示。

共有1个答案

韩照
2023-03-14

物理发动机的连接(约束)可以被认为是施加力的Spring。Spring不是坚如磐石的--如果你用力过猛它就会弯曲。

关节的“柔软度”往往与物理引擎的html" target="_blank">性能成正比。如果你使用微小的时间步长和许多约束迭代,你可以得到非常僵硬的关节,但性能差。如果你强迫物理引擎使关节僵硬,但使用更大的时间步长,模拟就会变得不稳定,很可能会爆炸。

关节总会有些“柔软”。你不能依靠关节在任何时候任何情况下都看起来坚如磐石。作为一个基于物理的游戏的开发者,你必须限制玩家不打破你的物理。这可以通过多种方式来实现,例如通过设置玩家施加的最大力的限制,或者通过移除一些玩家互动。

不太对。碰撞的“落块”会产生接触--这也是限制(在物理引擎内部)。如果你太用力推动触点,或者施加太大的重力,触点看起来也会很有弹性。这就是为什么像《愤怒的小鸟》这样的游戏使用弱重力场的原因。

制作一个基于物理的游戏,让用户体验自由,而不限制用户交互的方式是很困难的,但也不是不可能的。

 类似资料:
  • 学过之前的那些章节,你就能做出来一款好玩的小游戏了,可是当你试图做一款复杂的游戏,那游戏需要模拟现实世界的情境,比如模拟两个物体碰撞,模拟物体受到重力,你就不知道该怎么办了。别担心,本章就介绍物理引擎,让我们来探索一下如何合理的使用物理引擎! 是否需要使用物理引擎 当你的需求很简单时,就不要使用物理引擎。比如只需要确定两个对象是否有碰撞,结合使用节点对象的 update 函数和 Rect 对象的

  • 本文向大家介绍NodeJs和V8引擎是什么关系?相关面试题,主要包含被问及NodeJs和V8引擎是什么关系?时的应答技巧和注意事项,需要的朋友参考一下 v8 是 Google 开源的 JavaScript 与 WebAssembly 引擎,用于 Google Chrome 与 NodeJS。 https://v8.dev/

  • 问题内容: 我在搜索我的网站上具有自动完成/提前输入功能。我看到他们有时是一个例外。我们正在使用代理服务器。 引起原因:java.net.ConnectException:连接被拒绝 这是我的编码方式 谁能告诉我为什么我只在某个时候得到这个例外?是否可能是由于从Android应用程序发出搜索请求而导致此异常,因为我们的网站不支持从android应用程序发出请求 问题答案: 当您尝试打开与IP地址/

  • 问题内容: 我将Java库打包为JAR,当我尝试从中调用方法时会抛出很多s。这些错误似乎随机出现。哪些类型的问题可能导致此错误? 问题答案: 这意味着你对库进行了一些不兼容的二进制更改,而无需重新编译客户端代码。 Java语言规范§13详细介绍了所有这些更改,最显着的是将非非私有字段/方法更改为,反之亦然。 根据新库重新编译客户端代码,你应该一切顺利。 更新:如果发布公共库,则应尽可能避免进行不兼

  • 打开编辑器,点击菜单栏中的 项目 -> 项目设置 -> 模块设置,勾选 3D Physics。然后选择合适的 3D 物理引擎,可选项包括 cannon.js 和 Builtin,默认为 cannon.js。若不勾选 3D Physics,则不能使用物理相关的组件和接口,否则会导致运行时出现报错。 注意:预览过程中物理引擎始终为 cannon.js,只有在构建工程时,该选项设置才会生效。 物理引擎(

  • 物理引擎概述 物理引擎是一种用于模拟真实物理现象的中间件,可以用来创建虚拟的物理环境,并在其中运行来自物理世界的规则。物理引擎应用的最多的地方就是动画和游戏行业,例如3D游戏开发常用的三大物理引擎: Havok PhysX Bullet Havok引擎的授权则比较昂贵和严格,光环4、上古卷轴5等游戏大作使用的都是这款引擎。PhysX虽然现在不开源,但也实行免费推广政策,是Unity3D、CryEn