我正在使用Electron和Two.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 无法绘制它们,因为我用作参数的变量在该范围内无法访问,因此在进行了一些调试后,我解决了这个问题。