Matter.js - 基于 Web 的 2D 图形引擎


MIT
跨平台
JavaScript

软件简介

Matter.js 是一个基于 Web 的 2D 图形引擎。

特性:

  • 物理属性(质量、面积、密度等)

  • 任何凸多边形的刚体

  • 稳定的叠加和 resting

  • 碰撞 (broad-phase, mid-phase and narrow-phase)

  • Restitution (elastic and inelastic collisions)

  • Conservation of momentum

  • Friction and resistance

  • Constraints

  • Gravity

  • Composite bodies

  • Sleeping and static bodies

  • Events

  • Rounded corners (chamfering)

  • Views (translate, zoom)

  • Collision queries (raycasting, region tests)

  • Time scaling (slow-mo, speed-up)

  • Canvas renderer (supports vectors and textures)

  • WebGL renderer (requires pixi.js)

  • MatterTools for creating, testing and debugging worlds

  • World state serialisation (requires resurrect.js)

  • Cross-browser (Chrome, Firefox, Safari, IE8+)

  • Mobile-compatible (touch, responsive)

  • An original JavaScript physics implementation (not a port)

示例代码:

// Matter.js module aliases
var Engine = Matter.Engine,
    World = Matter.World,
    Bodies = Matter.Bodies;

// create a Matter.js engine
var engine = Engine.create(document.body);

// create two boxes and a ground
var boxA = Bodies.rectangle(400, 200, 80, 80);
var boxB = Bodies.rectangle(450, 50, 80, 80);
var ground = Bodies.rectangle(400, 610, 810, 60, { isStatic: true });

// add all of the bodies to the world
World.add(engine.world, [boxA, boxB, ground]);

// run the engine
Engine.run(engine);