SuperAPI AI 工具集

physics-matter

编程与开发

查看项目

更新于 10-15 15:13

技能介绍

用途

该技能面向在 Phaser 4 中使用 Matter.js 物理引擎的开发场景,提供完整的刚体物理模拟能力,包括刚体、复合体、约束、复合物、传感器、碰撞过滤、指针拖拽、瓦片地图集成以及调试渲染。

主要能力

  • 场景插件 this.matter:提供 add 工厂用于创建刚体、约束与游戏对象;world 管理引擎、边界与调试渲染;并可直接访问 Matter.js 的 body、bodies、composite、composites、constraint 模块。
  • 世界配置:通过 physics.matter 配置重力、边界(setBounds)、睡眠(enableSleeping)、迭代次数、时间缩放、自动更新与调试等。
  • 物理游戏对象:Phaser.Physics.Matter.Sprite(支持动画)、Phaser.Physics.Matter.Image(无动画、更轻量),以及 MatterGameObject 可为任意现有游戏对象注入物理组件。
  • 组件方法:速度、力与推力、弹力、摩擦(动态/空气/静态)、质量与密度、重力忽略、传感器、静态、睡眠、碰撞分类与回调、身体形状设置、变换同步。
  • 约束:支持刚性关节、弹簧、销钉、世界约束与偏移锚点。
  • 复合物:堆叠、图像堆叠、链条、网格、软体,以及牛顿摆、汽车、金字塔等预构建复合物。
  • 复合体:将多个形状合并为单一刚体,部件共享位置、角度与速度。
  • 睡眠系统:静止刚体可进入睡眠以跳过模拟,支持睡眠阈值与事件。
  • 传感器:检测碰撞但不产生物理反应,适用于触发区域、拾取物与检测区域。
  • 碰撞分类与过滤:基于位掩码的 category、mask 与 group,支持批量设置。
  • 碰撞回调:支持按刚体设置 setOnCollide、setOnCollideEnd、setOnCollideActive、setOnCollideWith,以及游戏对象级事件。
  • 瓦片地图集成:通过 convertTilemapLayer 为碰撞瓦片创建 MatterTileBody,支持 Tiled 碰撞形状。
  • 复杂形状:从顶点字符串或顶点集创建刚体,凹形自动分解。
  • 指针约束:mouseSpring 支持鼠标/触摸拖拽,可禁用、忽略特定刚体、停止拖拽与销毁,并提供拖拽事件。
  • 查询:点相交、点包含、矩形区域、射线检测与刚体重叠查询。

使用方式

在游戏配置中启用 Matter 物理:

const config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    physics: {
        default: 'matter',
        matter: {
            gravity: { y: 1 },
            enableSleeping: true,
            debug: true,
            setBounds: true
        }
    },
    scene: GameScene
};

在场景中创建物理对象:

this.player = this.matter.add.sprite(400, 200, 'player');
this.player.setBounce(0.5);
this.player.setFriction(0.05);
this.matter.add.rectangle(400, 580, 800, 40, { isStatic: true });
this.matter.add.mouseSpring();

适用场景

适用于需要完整刚体物理模拟的 2D 游戏开发,例如平台跳跃、物理益智、载具模拟、软体与链条效果、拖拽交互、传感器触发区域以及瓦片地图碰撞等。

限制

资料未提供关于收费、价格、平台兼容性、性能上限或具体版本要求的信息。部分内容(如查询部分末尾)在资料中不完整,暂未提供完整细节。