目录

Matter-JS 简 介

Matter-JS 下 载

Matter-JS CDN 地址

Hello World

Matter-JS 概念剖析


Matter-JS 简 介

1、Matter.js is a 2D physics engine for the web (matter.js 是一个用于 web 的二维物理引擎)

Matter.js 官网地址:http://brm.io/matter-js/index.html

GitHub 开源地址:https://github.com/liabru/matter-js

官方demo演示地址:http://brm.io/matter-js/demo/#mixed       ——点击页面顶部中间下拉框可以切换演示示例——

官方deom源码地址:https://github.com/liabru/matter-js/tree/master/examples

codepen 在线编辑演示地址:https://codepen.io/collection/Fuagy/#

官方 API 文档地址:http://brm.io/matter-js/docs/

2、目前最新版 Matter.js 是 2018-06-11 更新的  0.14.2 版本。查看历史版本更新日志。

3、Matter.js 支持特性如下:

刚体(Rigid bodies) 复合体(Compound bodies) 复合材料(Composite bodies)
凹面和凸面(Concave and convex hulls) 物理特性(质量、面积、密度等) 恢复原状(弹性和非弹性碰撞)
碰撞(粗略阶段、中间阶段、精细阶段) 稳定的堆叠和静止 动量守恒(  Conservation of momentum)
摩擦力和阻力(Friction and resistance) 事件监听(Events) 约束(Constraints)
重力(Gravity) 睡眠和静态物体 圆角(倒角)Rounded corners (chamfering)
视图(平移、缩放) Views (translate, zoom) 碰撞查询(射线追踪、区域测试) 时间缩放(减速、加速)
Canvas 渲染器(支持向量和纹理) MatterTools 工具(创建、测试和调试) 世界状态序列化,需要 resurrect.js
跨浏览器(Chrome、Firefox、Safari、IE8+)和 Node.js 支持 兼容移动端(触摸、响应) 原生 JS 实现

Matter-JS 下 载

1、Download the edge build (master) or get a stable release and include the script in your web page(需要下载最新版的,点击"edge build (master)";需要下载稳定版的,点击"stable release"。下载完成后,在页面中像如下引用即可):

<script src="matter.js" type="text/javascript"></script>

2、You can also install using the package managers Bower and NPM(或者使用包管理器Bower和NPM进行安装):

bower install matter-js
npm install matter-js

3、下载的方式多种多样,但归根到底就是获取 matter-js/build/matter.js 与 matter-js/build/matter.min.js 文件,前者是未压缩版,后者是压缩版,建议学校阶段使用前者,部署阶段使用后者。可以将整个项目下载下来,然后在 build 目录下可以找到它们,也可以像如下所示,直接将此文件保存下来。

4、打开 matter-js/build/matter.js 与 matter-js/build/matter.min.js 文件 后,点击右上角"Raw"按钮,然后 Ctrl + S 保存下来即可。如下所示为下载保存好的 matterJS 库(其中的_0.14.2是修改后的名字),压缩版和未压缩版都下载下来了,这和将整个项目下载下来然后找到里面的这两个文件,其内容完全是一样的。

Matter-JS CDN 地址

1、除了下载 Matter-JS 到本地来使用,也可以直接使用网络上的 cdn 地址。

2、常用的 JS CDN 站点有 cdnjs 、bootcdn 等,如下所示,随便引入哪一个到 html 文件中都可以正常使用。

<script src="https://cdnjs.cloudflare.com/ajax/libs/matter-js/0.12.0/matter.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/matter-js/0.12.0/matter.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/matter-js/0.11.1/matter.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/matter-js/0.11.1/matter.min.js"></script><script src="https://cdn.bootcss.com/matter-js/0.12.0/matter.js"></script>
<script src="https://cdn.bootcss.com/matter-js/0.12.0/matter.min.js"></script><script src="https://cdn.bootcss.com/matter-js/0.11.1/matter.js"></script>
<script src="https://cdn.bootcss.com/matter-js/0.11.1/matter.min.js"></script>

Hello World

学习一门新的东西的时候,本人经验是,细节之处日后慢慢研究深入,项目得先跑起来再说。把之前下载好的 js 文件现在引入 Html 文件中,编码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"><title>Matter-JS</title><script src="../js/matter_0.14.2.js"></script>
</head>
<body>
<script type="text/javascript">var Engine = Matter.Engine;//引擎.引擎模块包含创建和操作引擎的方法var Render = Matter.Render;//基于HTML5画布的渲染器var World = Matter.World;//演出舞台. Matter.js 中任何的物体都需要一个舞台/容器,而存放这些物体的地方,则称之为World(世界)var Bodies = Matter.Bodies;//用于创建各种形状的物体,物体必须添加到Wolrd中,然后由引擎运行世界var engine = Engine.create();//render(渲染器)将要渲染的物理引擎是上面的engine,而渲染的对象是html网页的bodyvar render = Render.create({element: document.body, engine: engine});/*** Bodies.rectangle = function(x, y, width, height, options)* x,y 分别表示矩形中心点的坐标,坐标的原点(0,0)在 Canvas(画布)的左上角* width,height 分别表示矩形的宽和高* options:描述矩形的参数,是一个 json 对象* @type {body}*/var boxA = Bodies.rectangle(200, 0, 80, 80);var boxB = Bodies.rectangle(450, 100, 80, 80);//将isStatic设为true,表示物体静止var ground = Bodies.rectangle(400, 510, 810, 60, {isStatic: true});World.add(engine.world, [boxA, boxB, ground]);// 将所有物体添加到世界中Engine.run(engine);//运行引擎Render.run(render);//运行渲染器
</script>
</body>
</html>

对于 Matter.js 的使用细节,以及官网的各种案例将在后续文章中进行深入了解。

Matter-JS 概念剖析

1)物理引擎

(1)物理引擎是一个计算机程序,使用质量、速度、加速度、摩擦力和空气阻力等物理变量,模拟了一个近似真实的物理系统,为物体赋予真实的物理效果,比如重力、旋转和碰撞等效果,让物体的行为表现的更加趋向真实。

(2)Matter.js is a 2D physics engine for the web (matter.js 是一个用于 web 的二维物理引擎),从  2014-02-28 的 0.5.0-alpha 开始到 2018-06-11 的 0.14.2 版本。

2)Engine(引擎)与 World(世界)

(1)The Matter module is the top level namespace. It also includes a function for installing plugins on top of the library.

(Matter 模块是顶级命名空间,它还包括在库的顶部安装插件的功能。)

(2)The Matter.Engine module contains methods for creating and manipulating engines. An engine is a controller that manages updating the simulation of the world.

(引擎模块包含创建和操作引擎的方法,引擎是管理世界模拟更新的控制器,可以控制时间的缩放,可以检测所有的碰撞事件,并且拿到所有碰撞的物体对pairs)

(3)Matter.js 中任何的物体都需要一个容身处,而存放这些物体的地方,则称之为世界 World。物体必须添加到世界里,然后由引擎运行这个世界。Matter.World 模块包含了创建和操作世界的方法。一个 Matter.World 相当于一个复合物体,物体、约束的聚合体,其次世界还有额外的一些属性,比如重力、边界等。

3)Render(渲染器)

(1)Matter.Render 是将实例渲染到 Canvas 中的渲染器,控制视图层的样式,它的主要作用是用于开发和调试。默认情况下 Matter.Render 将只显示物体的线框(轮廓),这对于开发和调试很有帮助,但如果需要使用到全局实体渲染则需要将线框模式关闭 render.options.wireframes = false,另外它同样也适合制作一些简单的游戏,因为它包括了一些绘图选项、线框、向量、Sprite 精灵和视窗功能。

Matter-JS 入门教程相关推荐

  1. Vue.js入门教程-组件注册

    一.组件创建 1.1 创建步骤 创建Vue的组件都有三个基本步骤是 [①创建组件构造器.②注册组件和③使用组件]. 1.2 基本示例 比如,我们创建一个Button组件. // 1. 创建一个组件构造 ...

  2. js读取http chunk流_极简 Node.js入门 教程双工流

    点击上方蓝字关注我们 小编提示: 本文是由 ICBU 的谦行小哥哥出品,我们会持续发出极简 Node.js入门 教程,敬请期待哦,文中有比较多的演示代码建议横屏阅读 双工流就是同时实现了 Readab ...

  3. Node.js 入门教程 23 使用 npm 的语义版本控制 24 卸载 npm 软件包 25 npm 全局或本地的软件包

    Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录 Node.js 入门教程 23 使用 npm 的语义版本控制 24 ...

  4. Vue.js入门教程(适合初学者)

    Vue.js入门教程 Vue官网网址:Vue.js 中文网 Vue.js Vue.js是渐进式JavaScript 框架,是一套构建用户界面的渐进式框架.也可以说Vue.js 是一个用来构建网页界面的 ...

  5. Node.js 入门教程 6 V8 JavaScript 引擎

    Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录 Node.js 入门教程 6 V8 JavaScript 引擎 6 ...

  6. 物理世界的互动之旅:Matter.js入门指南

    点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流群 本文简介 戴尬猴,我是德育处主任 欢迎来到<物理世界的互动之旅:Matter.js入门指南>. 本文将带您探索 Matter. ...

  7. egg.js入门教程视频文件(转载于cnode社区)

    记得上篇博客我满怀欣喜的去搞富文本,结果撞的头破血流. 简直是惨不忍睹.后来我也说了,我的那个有比较严重的问题,后期会考虑重构.(第一版已经放弃了) 之后我说我会去看关于后端nodejs koa框架方 ...

  8. Two.js入门教程

    项目中需要前端画svg图像,直接在html上写标签不太优雅,于是找到了Two.js这个第三方类库,使用其完成了开发任务后,分享下使用心得,就算是入门教程了. 其官方网站为https://two.js. ...

  9. Ember.js入门教程、博文汇总

    第一章 对象模型 Ember.js 入门指南--类的定义.初始化.继承 Ember.js 入门指南--类的扩展(reopen) Ember.js 入门指南--计算属性(compute properti ...

  10. 前端框架React Js入门教程【转】

    现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...

最新文章

  1. 收藏 | 图解Transformer:Attention Is All You Need
  2. 简明现代魔法博客图书馆之php学习记录
  3. Readline-select
  4. 天津市职高高一计算机试题及答案,职高(中职)数学(基础模块)上册题库.doc
  5. win7设置计算机临时用户,Win7小技巧:用户账户自动登录方法汇总
  6. 金明的预算方案(洛谷-P1064)
  7. Linux unzip命令:解压zip文件
  8. CNN_TensorFlow图像分类代码
  9. 调用http_【学习充电】直观讲解一下 RPC 调用和 HTTP 调用的区别!
  10. MongoDB(三):MongoDB概念解析
  11. 卡盟主站搭建_搭建卡盟主站下载|搭建卡盟主站教程 (附带源码)百度云_ - 极光下载站...
  12. php msvcr100.dll丢失,WAMP启动报错MSVCR100.dll丢失
  13. Java 飞翔的小鸟小游戏开发 完全源码 + 论文文档
  14. 梦雨百度网盘机器人好友群组消息自动回复软件(可用于自动发货场景)
  15. termux python 打开摄像头_python+opencv 电脑调用手机的摄像头
  16. App - 电影天堂第三方客户端
  17. docker内运行的grafana重置登录密码
  18. cmd下查询公网ip地址
  19. 【物体检测快速入门系列 | 01 】基于Tensorflow2.x Object Detection API构建自定义物体检测器
  20. Mac Terminal 美化

热门文章

  1. Ubuntu 设置timesyncd时间同步、时区、 NTP同步对时-小白实操记录
  2. 【stream】stream流基础知识
  3. 不要逼我……我想做乖孩子
  4. 大学计算机老师面试说课,大学老师面试讲课技巧
  5. 移动开发第二次作业——实现顶部悬浮的滑动列表
  6. 给查询出来的数据添加一个标记从1自增序号
  7. ONES CTO 冯斌 | 敏捷思想是不确定时代的通行证
  8. [Linux] 假死分析
  9. 2023注会电子版教材
  10. AutoIT3 vs AutoHotkey