matter js中创建body后如何改变body的纹理?

How to change the texture of a body after the body is created in matter js?

我已经像这样向世界添加了一个名为 testObj 的 body

const testObj = Bodies.rectangle(200,200,40,40,)

World.add(engine.current.world, [
  Bodies.rectangle(cw/2, 0, cw, 20, { isStatic: true }),
  Bodies.rectangle(cw/2, ch, cw, 20, { isStatic: true }),
  Bodies.rectangle(0, ch/2 , 20, ch, { isStatic: true }),
  Bodies.rectangle(cw, ch/2 , 20, ch, { isStatic: true }),
  testObj,])

我有一个这样的按钮

<Button onClick={changeTexture}>change</Button>

所以当我单击此按钮时,我想将 testObj 的纹理更改为图像。

( p.s- 如果重要的话,我正在用 React 构建这个网站。我正在使用 useEffect 钩子来渲染东西。)

更新

好的,所以我确实找到了一种方法来做到这一点。基本上我应该能够做到
testObj2.render.sprite.texture = './Images/Ellipse.png'

并更改纹理,但出现此错误。 (我可以用 render.fillStyle = "red " 改变颜色,但不能改变精灵纹理)

Uncaught DOMException: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' st

然后我发现了一个 GitHub 问题。这个答案解决了问题。

https://github.com/liabru/matter-js/issues/497#issuecomment-519113260