2d - Godot:如何实现二维固定关节?

标签 2d game-physics rigid-bodies godot

所以,我从 Godot 开始,依靠物理引擎(基于 RigidBody2D)来制作 2d 自上而下的宇宙飞船游戏。部分想法是航天器是模块化的——即部件可以以不同的方式组装以创造不同的飞行器。它仍处于早期阶段,但我目前关注的是如何最好地连接这些不同的部分。早些时候我实现了一个旋转大炮并使用 Joint2D 将它连接到船上,效果很好,但对于非旋转部件,Godot 没有这样的“固定”关节。到目前为止,我所看到的固定接头的唯一方法是两个销接头,它们之间有一定的距离。 (是的,有工程学背景)。

但是,我发现了一些问题:(1) 当我创建更多更大的飞行器时,许多关节可能会增加额外的计算负载(我希望它做的只是像一个刚体一样工作) , (2) 实际组装零件需要更多工作(最终我希望添加一个船舶编辑器,并以编程方式附加零件 - 我确实意识到这一点很容易解决),(3) 我要跑吗稍后会遇到复杂构建的问题?,以及 (4) 物理引擎将如何处理这些类型的组件?

将不移动的飞船部件添加为同一刚体的一部分而不是单独的部件会更好吗?但是,如果我这样做,像丢失模块、每个部分都有单独的生命值等事情最终会变得更加困难吗?

我不确定我是否想做这最后一部分,但是半刚性(即柔性)关节呢?换句话说,一个灵活的航天器? (游戏概念的早期版本是从头开始使用真实物理学——包括各种 Material 失效模式——但软体很难,所以我不会去那里……至少在可预见的 future 不会!)

最佳答案

在 Godot 中不需要固定关节。您可以在一个 RigidBody2D 下添加多个碰撞形状。

因此,在 RigidBody2D 节点下添加所有碰撞形状以及任何其他 Sprite ,它们将一起作为一个实体对象。

关于2d - Godot:如何实现二维固定关节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55931132/

相关文章:

android - 通过 Canvas 类硬件绘制在 Android 上加速了吗?

java - 计算二维数组JAVA中单元格周围的地雷数量

python - 追加到行/列长度未知的 python 中的二维列表

javascript - 弹跳球获得动力

c# - 当索引为 ( array.length - 1 ) 时,发生 IndexOutOfRangeException,但代码仍然执行

java - 将列表添加到二维数组列表

java - 角度约束不适用于某些角度

video - 如何同步物理模型、音频、游戏渲染、帧显示和输入

c# - 刚体移动时,有时刚体速度为零