物理引擎

物理引擎可以看做是 Godot 引擎一个内置系统,它负责处理游戏中的物理模拟,包括但不限于刚体的运动、碰撞检测、力学效应(如重力和摩擦力)以及其他物理现象。使得开发者能够创建出具有真实物理行为的游戏世界。

物理引擎 - 知识体系

2D 场景相关

  • Area2D ,创建 2D 碰撞检测区域
    • body_entered 信号 物体进入该区域的内置信号
  • PhysicsBody2D 2D 物理体
    • CharacterBody2D 运动体节点,创建“靠代码控制来移动 2D 物理体”
      • velocity 当前速度向量,调用 move_and_slide() 期间会进行使用并修改。
      • move_and_slide() 函数 根据 velocity 移动该物体。
      • is_on_floor() 判断物体是否与地板发生了碰撞。
    • RigidBody2D 刚体节点,靠外力才能被移动的 2D 物理体
    • StaticBody2D 静态体节点,创建无法被移动的 2D 物理体。
    • AnimatableBody2D 动画物理体 配合AnimationPlayer可以做动画的 2D 物理体。
  • CollisionShape 碰撞形状
    • CollisionShape2D 节点, 定义二维碰撞形状
      • shape 属性 形状
        • WorldBoundaryShape2D 选项 用于创建无限延伸的地面形状。
      • disabled 属性 是否禁用碰撞。
      • one_way_collision 属性 是否启用单向碰撞。
    • CollisionPolygon2D 节点 用于定义二维多边形碰撞形状。

3D 场景相关

  • PhysicsBody3D 3D 物理体
    • RigidBody3D 刚体节点,靠外力才能被移动的 3D 物理体
      • apply_force() & apply_central_force() 对实体施加一个定向力是否影响旋转?
      • apply_torque() 施加旋转力
      • 碰撞检测:
        • contact_monitor 是否开启接触监控
        • max_contacts_reported 指定物理引擎在每帧中处理的最大接触点数量,从而影响物理模拟的准确性和性能。
Last Updated: