0.19.10 • Published 5 months ago

matter-js-serialize v0.19.10

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

npm version license

matter-js-serialize

A serialization library for the matter-js physics engine.

Install

npm install matter-js-serialize
yarn add matter-js-serialize

Features

  • Serialize a matter js world into a string
  • Deserialize a matter js world from a serialized string

Usage

import { serializeWorld, serializeWorld } from matter-js-serialize';
import { Engine, Composite } from 'matter-js';

const engine = Engine.create()

// ... add bodies, constraints, etc.

// this is a string that can be saved to a file or sent over the network
const serializedWorld = serializeWorld(engine.world);

// later, deserialize the world
const world = deserializeWorld(serializedWorld);

// Clear the world, removing all existing bodies, constraints, etc.
Composite.clear(engine.world, false, true);
// merge the deserialized world into the engine
// @ts-ignore
Engine.merge(engine, {
  world: world
});

API

serializeWorld(world: World): string

Serialize a matter-js world into a string.

deserializeWorld(serializedWorld: string): World

Deserialize a matter-js world from a serialized string.

Compression

A serialized world is a JSON string and can be large for large world. This library does not do compression.

Any compression lib can be used on the result of serializeWorld. I recommend lz-string.

import { serializeWorld } from 'matter-js-serialize';
import { compress, decompress } from 'lz-string';

const serializedWorld = serializeWorld(engine.world);
const compressedWorld = compress(serializedWorld);
const decompressedWorld = decompress(compressedWorld);

Development

Build

npm run build

Test

npm run test

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

0.19.10

5 months ago

0.19.9

5 months ago

0.19.8

5 months ago

0.19.7

5 months ago

0.19.6

5 months ago

0.19.5

5 months ago