有没有一种方法可以将SVG图像转换为Matter.js中的对象

时间:2019-04-20 15:43:48

标签: javascript svg matter.js

我正在尝试将游戏移至Matter.js,我遇到的一个大问题是将具有较大路径的旧SVG图像放入游戏中。

我只需要手工完全重做一次,但是路径太大,要花几个小时。我认为,如果可以在Matter.js中将SVG图像转换为SVG对象,会容易得多。

那么有没有简单的方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

作为一种选择,您可以使用svg path polyfill之类的东西将SVG解析为coords数组。

下面是我的本机代码段。如果您使用DOM,则会更加准确。

fetchResource(svg1File)
        .then((svgString) => this.toXML(svgString))
        .then(xml => this.extractPaths(xml))
        .then(svgPaths => this.toCoords(svgPaths))
        .then(vertexSets => {
           //then for each vertex set
           //Matter.Bodies.fromVertices(width / 2, (i + 1) * 100, vertexSets[i], {
        })