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

A pyramid of blocks

  • Matter.js是用JavaScript编写的2D刚体物理引擎。 该库可以帮助您轻松地在浏览器中模拟2D物理。 它提供了很多功能,例如创建刚体并为其分配物理属性(如质量,面积或密度)的能力。 您还可以模拟各种碰撞和力,例如重力和摩擦力。 Matter.js支持所有主要浏览器,包括IE8 +。 此外,由于它可以检测触摸并具有响应能力,因此适合在移动设备上使用。 所有这些功能使您值得花时间学习如何使

  • 在本系列的第三篇教程中,您了解了Matter.js中Body模块的不同方法和属性。 使用“身体”模块,您可以操作简单的身体,例如圆形,矩形和梯形。 Matter.js还具有其他模块,可帮助您创建和操纵一些复杂但常见的合成实体,例如汽车,链条,金字塔,堆栈和软体。 所有这些复合材料及其操作方法都可以在Matter.js的Composite和Composites模块中找到。 在本教程中,您将开始学习可

  • 之前一直想看box2d,后面发现了matter.js,听说文档比较全面,稍微看了下也没觉得有多全面(),拖了很久才来写了个相对完整的例子,记录一下。 先说下整体感觉,使用的时候发现了一些bug(也可能是我使用姿势不对),性能不是太好,文档形式是API加demo,有些功能需要自己尝试,建议把官方demo都看一遍,试一试。并且因为是个物理引擎,如果用来写游戏,有些你想要不遵守物理法则的时候就得想点办

  • 在该系列的上一教程中,您了解了Matter.js中的World和Engine模块。 这两个模块中可用的方法旨在一次控制多个物体或整个世界的行为。 但是,在某个时候,必须控制您世界中各个物体的属性。 例如,您可能想在特定对象上施加一些力或更改其摩擦系数。 在这种情况下,Matter.js中的Body模块可能会很有帮助。 该模块包含许多方法和属性,可让您指定各种物理属性的值,从质量到恢复系数。 在本教

  • JavaScript 语言: JaveScriptBabelCoffeeScript 确定 var chickenContainer = document.getElementById('chicken-container'); // Matter module aliases var Engine = Matter.Engine, World = Matter.World, Body = Mat

  • JavaScript 语言: JaveScriptBabelCoffeeScript 确定 var DOT_SIZE = 30; var X_START_POS = 120; var Y_START_POS = 80; // ‥‥‥‥‥‥‥‥‥‥‥‥‥□□□ // ‥‥‥‥‥‥〓〓〓〓〓‥‥□□□ // ‥‥‥‥‥〓〓〓〓〓〓〓〓〓□□ // ‥‥‥‥‥■■■□□■□‥■■■ // ‥‥‥‥■□■

  • 前言 H5游戏一直以来,以跨平台,低体验著称,其很大原因在于早期技术方案的不成熟和受限于H5游戏编码水平。但现今,Canvas和WebGL的渲染性能已经很好了,合理编码的情况下,体验与原生应用游戏并无区别 由微信小程序衍生且独立而出的 【微信小游戏】便是瞄准了Web游戏渲染,代表着这是未来游戏制作一个很大方向上的趋势。微信小游戏运行环境移除了BOM和DOM,这是一个很有意思的方案,因为这意味着游戏

  • matter.js QQ交流群:796728825 关键代码 Events.on(engine, 'collisionStart', function(event) { var pairs = event.pairs; for (var i = 0; i < pairs.length; i++) { var pair = pairs[i];

 相关资料
  • 问题内容: 下学期,我们有一个团队中的Java应用程序模块。该模块的要求是制作游戏。在圣诞节假期里,我一直在做一些练习,但是我想不出绘制图形的最佳方法。 我正在使用Java Graphics2D对象在屏幕上绘制形状,并每秒调用30次,但这非常闪烁。有没有更好的方法来绘制Java中的高性能2D图形? 问题答案: 您想要做的是创建一个带有BufferStrategy的canvas组件并对其进行渲染,下

  • 问题内容: 我正在尝试使Java 2D图形“ hello world”运行起来,并发现它异常困难(即,我正在搜索“ java hello world example”的变体,然后变成空白)。有人能帮我举一个最小的世界范例吗? 编辑 不过,这是一个不错的起点,“ Java教程:执行自定义绘画” 。 问题答案: 要在Swing中绘制矩形,您应该: 首先,永远不要直接在JFrame或其他顶级窗口中绘制。

  • 在上一章中,我们已经看到了JavaFX的基本应用,我们学习了如何创建一个空窗口以及如何在JavaFX的XY平面上绘制一条线。 除了线,我们还可以绘制其他几个2D形状。 2D形状 通常,2D形状是可以在XY平面上绘制的几何图形,包括直线,矩形,圆形等。 使用JavaFX库,您可以绘制 - 预定义的形状,如直线,矩形,圆,椭圆,多边形,折线,立方曲线,四边形曲线,圆弧。 路径元素,如MoveTO路径元

  • 我现在正在做一个项目,但我找不到解决问题的方法。 这就是我的问题:我有一个JFrame,然后我添加了一个容器JPanel,并向这个容器面板添加了另外两个JPanel,第一个面板(InputPanel)用于用户输入,第二个面板(Board)用于根据用户输入显示指定的算法。 请注意,在我的Board类中,我重写了paintComponent(图形g)来绘制算法。 主框架中的我的代码: 我最初的计划是在

  • 图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视讯显示器和打印机上显示图形。正如您所认为的那样,GDI是Windows非常重要的部分。不只您为Windows编写的应用系统在显示视觉信息时使用GDI,就连Windows本身也使用GDI来显示使用者接口对象,诸如菜单、滚动条、图标和鼠标光标。 不幸的是,如果要对GDI进行全面的讲述,将需要一