У меня есть небольшой пример сценария, где у меня есть круг (радиус: 40), который падает на землю. Но когда я увеличить свой радиус до 80, причем только графика окружности, кажется, меняется, но не физика:JavaScript, Matter.js: Увеличение радиуса круга
<html>
<body></body>
</html>
<script src="matter.js"></script>
<script>
var Engine = Matter.Engine,
World = Matter.World,
Bodies = Matter.Bodies
engine = Engine.create(document.body,{render:{options:{wireframes: false}}})
engine.render.options.background = "#7f7f7f"
ground = Bodies.rectangle(400,590,800,20,{isStatic:true})
World.add(engine.world, ground)
circle = Bodies.circle(400,20,40,{render:{fillStyle:"#0000ff"}})
World.add(engine.world, circle)
Engine.run(engine)
setTimeout(increaseRadius, 1500)
function increaseRadius(){
circle.circleRadius = 80
}
</script>
Но тогда вся другая физика исчезнет, по крайней мере, если круг движется. Но я вижу, если я смогу восстановить эти вещи. – Unknown
Я предполагаю, что нет указателя на глобальный круг, который вы создали, когда передаете его миру, но его копия создается. Поэтому, когда вы изменяете радиус круга, это не влияет на используемую копию. – benbo
Возможно, вы можете вызвать метод масштабирования на теле: http://brm.io/matter-js-docs/classes/Body.html#method_scale – benbo