如何在物理学中更改圆的颜色



我有一个白色圆圈的cells数组。每个world.step左右,我都想将一个随机圆更改为红色。我可以这样访问和更改圆的颜色:

var n = Math.floor(Math.random()*100);
cells[n].styles.fillStyle = colors.red;

这一次。一旦我在Physics.util.ticker.on中调用world.step,就不会将圆圈变成红色。这是我的完整功能:

 Physics.util.ticker.on(function(time) {
     var n = Math.floor(Math.random()*100);
     cells[n].styles.fillStyle = colors.red;
     world.add(cells);
     world.step();
});

我尝试了提供的建议并获得了此代码:

switch (newState) {
    case states.cancerInterphase:
        cells[n].styles.fillStyle = colors.red;
        break;
    case states.cancerMitosis:
        cells[n].styles.fillStyle = colors.pink;
        break;
    case states.interphase:
        cells[n].styles.fillStyle = colors.white;
        break;
    case states.mitosis:
        cells[n].styles.fillStyle = colors.blue;
        break;
}
cells[n].state.vel = new Physics.vector(speed[0], speed[1]);
cells[n].view = null;
world.add(cells);

最终,步骤函数运行并更新页面。不幸的是,旧圆的痕迹仍然留在后面。

我通过使用帆布渲染器而不是pixi.js。

解决了此问题

库在 body.view中存储了一个身体的缓存图像,因此,为了使其刷新刷新,您需要删除该属性,因此渲染器重新绘制了图像。

var cell = cells[n];
cell.styles.fillStyle = colors.red;
cell.view = null;

相关内容

  • 没有找到相关文章

最新更新