MatterJs 介绍

作者: DiligentLeo | 来源:发表于2018-07-19 11:24 被阅读0次

    写在前面

    matter.js 是一个2D的javascript物理引擎,主页展示了一些demo。
    这里介绍如何创建一个基本的物理世界。

    用法

    1. html文件中引入

    <script src="../build/matter.js"></script>
    

    2. 创建引擎,渲染器,添加世界,生成身体模型。

    var Engine=Matter.Engine,
        Render=Matter.Render,
        World=Matter.World,
        Bodies=Matter.Bodies;
    
    

    Engine是引擎,Render是渲染器,World是表演环境,Bodies可以用来创建各种形状的物体。

    3. 创建引擎实例与引擎世界。

    var engine=Engine.create(),
        world=engine.world;
    

    4.创建渲染器实例。

    var render=Render.create({
                     engine:engine,
                     element:document.body
               });
    

    render(渲染器)将要渲染的物理引擎是之前所创建的engine,而渲染的对象是html网页的body。

    5. 运行渲染器,运行引擎。

    Engine.run(engine);
    Render.run(render);
    

    Engine和Render是依附于Matter的,而运行run()方法的参数是它们各自所创建的实例。

    至此,在网页这测试,如无意外,可看到一个黑色的canvas。 基本的matter.js世界

    6.添加物体

    var boxA=Bodies.rectangle(500,170,40,260);
    

    由rectangle可以看出,这将是一个矩形物体。

    7.将物体添加到World世界之中。

    World.add(world,boxA);
    

    这时,再刷新,可以看到一个矩形的物体从生成的地方开始自由落体。


    生成了一个矩形

    参数(500,170,40,260)中,前两个是物体坐标,后两个分别是宽度和长度。
    需要注意的是,这里的坐标系统中,500和170是矩形的中心所在位置,而html的canvas中坐标描述的是矩形的左上角。**

    8.生成地面。

    var ground=Bodies.rectangle(400,600,600,100,{isStatic:true});
    

    需要修改前面的代码,将ground加入到World中。World.add(world,[boxA,ground]);地面ground同样是一个矩形,不过,可以看到它在生成是比boxA多了一个参数,这个参数是个json对象,字面上很好理解,将isStatic设为true,即是静止的。
    这时候,再刷新页面,就是这样的,一个简单的世界,物体遵循自由落体规律。

    纯洁的世界

    写在后面

    这是一个简单的世界,在这个基础上,可以扩展出更复杂的功能。mater.js 还是蛮好用的。

    相关文章

      网友评论

      本文标题:MatterJs 介绍

      本文链接:https://www.haomeiwen.com/subject/oejnyftx.html