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

联合创作 · 2023-09-29 17:06

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);

浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报