Javascript 如何使用matter.js连续旋转物体?

Javascript 如何使用matter.js连续旋转物体?,javascript,rotation,physics-engine,matter.js,Javascript,Rotation,Physics Engine,Matter.js,我对物理引擎还不熟悉,但要开始我设想的一个项目,我需要在页面中心的固定位置连续旋转一个六边形 我想我基本上误解了物理引擎的工作原理,但当我称之为物质。身体。旋转(六边形,1);当由提供的参数(1)渲染时,它只是将六边形立即旋转,并且不会旋转得更远。如何使其连续旋转 这是我的密码: 请注意,设置setStatic时,六边形不会从机架中掉落 //模块别名 var发动机=物质发动机, Render=物质,Render, 世界=物质。世界, 物体=物质。物体; 复合材料=物质。复合材料; //创建引擎

我对物理引擎还不熟悉,但要开始我设想的一个项目,我需要在页面中心的固定位置连续旋转一个六边形

我想我基本上误解了物理引擎的工作原理,但当我称之为物质。身体。旋转(六边形,1);当由提供的参数(1)渲染时,它只是将六边形立即旋转,并且不会旋转得更远。如何使其连续旋转

这是我的密码:

请注意,设置setStatic时,六边形不会从机架中掉落

//模块别名
var发动机=物质发动机,
Render=物质,Render,
世界=物质。世界,
物体=物质。物体;
复合材料=物质。复合材料;
//创建引擎
var engine=engine.create();
//创建渲染器
var render=render.create({
元素:document.body,
引擎:引擎
});
var hexagon=物体。多边形(375,300,6200,{惯性:无穷大});//将惯性设置为Infinity将防止碰撞时旋转
物质。主体。设置静电(六边形,真);
物体旋转(六边形,1);
圆木(六边形);
//物质。身体。旋转(六边形,1)
//将所有实体添加到世界
添加(engine.World,[hexagon]);
//发动引擎
引擎。运行(引擎);
//运行渲染器
Render.run(Render)

您应该使用循环增加六边形的角度,并使用
Matter.Body.setAngle
设置旋转。这样做看起来像这样:

var hexagon = Bodies.polygon(375, 300, 6, 200, {
    isStatic: true,
    inertia: Infinity,// setting inertia to infinty will prevent rotation upon collision
    rotationSpeed: 1 // Optional - you could substitute hexagon.rotationSpeed in updateRotation() with this number
});
World.add(world, [hexagon]);  

function updateRotation() {
    Matter.Body.setAngle(hexagon, hexagon.angle + hexagon.rotationSpeed);
    requestAnimationFrame(updateRotation);
}
window.requestAnimationFrame(updateRotation);

完整代码如下:
//模块别名
var发动机=物质发动机,
Render=物质,Render,
世界=物质。世界,
身体=物质。身体,
物体=物质。物体;
复合材料=物质。复合材料;
//创建引擎
var engine=engine.create();
//创建渲染器
var render=render.create({
元素:document.body,
引擎:引擎
});
var hexagon=实体。多边形(375、300、6200、{
是的,
惯性:无穷大,//将惯性设置为infinty将防止碰撞时旋转
旋转速度:1//可选
}); 
//将所有实体添加到世界
添加(engine.World,[hexagon]);
//发动引擎
引擎。运行(引擎);
函数updateRotation(){
车身.设置角度(六边形,六边形.角度+六边形.旋转速度);
requestAnimationFrame(updateRotation);
}
window.requestAnimationFrame(updateRotation);
//运行渲染器
Render.run(Render)