滚动非圆形对象Matter.js

问题描述

我对Matter.js很陌生,因此如果答案很明显,请原谅我。

我正在尝试将一个物体旋转到另一个(静态)物体的顶部,并使它沿着该表面滚动。

我需要一些与汽车演示类似的东西,但我需要使侧倾加速度为零。即循环的每次迭代我都应该能够设置旋转量并使主体旋转那么多。 我还需要使用它才能处理非椭圆体。

我有一些代码可以使身体旋转,但是我正在努力使身体根据其旋转方向在表面上滚动。

任何帮助将不胜感激,请在下面查看我当前的代码

// module aliases
var Engine = Matter.Engine,Render = Matter.Render,World = Matter.World,Bodies = Matter.Bodies,Body = Matter.Body;

// create an engine
var engine = Engine.create();

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

var BoxA = Bodies.rectangle(400,200,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,ground]);

// run the renderer
Render.run(render);

engine.world.gravity = {x: 0,y:0,scale: 0}; //disable gravity

window.setInterval(function () {
  Body.rotate(BoxA,0.01);
  Body.translate(BoxA,{ x: 0,y: 10 });
  
  Engine.update(engine,1000 / 60);
},1000 / 60)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)