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);
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进行全面的讲述,将需要一