代码之家  ›  专栏  ›  技术社区  ›  Feelsbadman

二不同范围的JS渲染

  •  1
  • Feelsbadman  · 技术社区  · 8 年前

    我正在使用 Electron 和 Two.js .该应用程序基本上是一个2D级别的编辑器。有 Tile 代表 32x32 游戏中的瓷砖。这里有一组瓷砖对象,我试着用 Two.JS 但事实证明 two 无法找到与不在同一范围内的可渲染内容 two.update()

    我试着用 two.makeGroup() 然后在循环平铺对象时,我尝试使用 two.add(newRect) .不走运。

    这样做根本不起作用。(超出范围?)

    for (let i = 0; i < tiles.length-1; i++) {
        let rect = two.makeRectangle(tiles[i].getX(), tiles[i].getY(), size, size);
        rect.fill = 'rgb('+tiles[i].color[0]+', '+tiles[i].color[1]+', '+tiles[i].color[2]+')';
        rect.noStroke();
    
    }
    
    two.update();
    

    但由于某些原因,这种方法非常有效

    let rect = two.makeRectangle(tiles[i].getX(), tiles[i].getY(), size, size);
    rect.fill = 'rgb('+tiles[i].color[0]+', '+tiles[i].color[1]+', '+tiles[i].color[2]+')';
    rect.noStroke();
    
    two.update();
    

    我的问题是:如何渲染来自不同范围的多个对象?

    (不绘制的地方)这个函数是我尝试绘制的地方: https://github.com/idontreallywolf/gyarb_mapper/blob/750eddc6cbb179d359c47b4fc6711c9e79a0472d/renderer.js#L73

    编辑:(可以绘制的地方) 我试着添加一个随机函数,它对这个函数有效。由于某种原因,之前的作用域没有(检测到?)

    function troll(){
        let rect = two.makeRectangle(100, 100, 100, 100);
        rect.fill = "rgb(255,255,255)";
        rect.stroke = "#f00";
    }
    
    troll();
    two.update();
    

    更新:

    0 回复  |  直到 8 年前