微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

滚动非圆形对象Matter.js

如何解决滚动非圆形对象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 举报,一经查实,本站将立刻删除。