1

我正在使用ElectronTwo.js构建一个桌面应用程序。该应用程序基本上是一个 2D 级别的编辑器。在游戏中有Tile代表32x32瓷砖的对象。有一组 Tile 对象,我尝试使用它们来绘制它们,Two.JS但事实证明two无法找到不在同一范围内的可渲染内容two.update()

我尝试使用创建一个组two.makeGroup(),然后在循环 Tile 对象时,我尝试使用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();

更新:

Two.js 无法绘制它们,因为我用作参数的变量在该范围内无法访问,因此在进行了一些调试后,我解决了这个问题。

4

0 回答 0