【发布时间】:2016-11-04 14:22:35
【问题描述】:
我正在尝试在网络上复制名为 CABAL 的 mmorpg 在线游戏的库存,该游戏的库存如下所示:
基本上,库存有 4 个选项卡,每个选项卡都是 8x8,因此每个选项卡上总共有 64 个单元格,总共 256 个,但是,每个选项卡上的索引从 0 到 63 开始,总数从 0 到 255。
如您所见,有些项目占用 1:1 (rowspan:colspan),有些是 2:2,有些甚至可以是 2:6,例如盔甲,无论如何重点是我尝试了 here 尽可能复制可以,虽然我设法只制作了 1 个标签。
function createCells(rows, cols) {
var cells = {},
x = 0,
startRow = 0,
endRow = 0;
for (var i = 0; i < rows; i++) {
cells[i] = {};
for (var j = 0; j < cols; j++) {
cells[i][j] = { id: "e" + x };
if (angular.isDefined(items[x])) {
cells[i][j] = items[x];
if (items[x].colspan > 1 && items[x].rowspan > 1) {
startRow = x % rows;
endRow = parseInt(x / cols, 10) + items[x].rowspan;
console.log(j);
console.log("Start column " + startRow + " end rowspan " + endRow + " x = " + x);
}
// console.log();
// if (j >= 5 && j <= 8) {
// x += j;
// }
}
if (!angular.equals(cells[i][j], {})) {
console.log(cells[i][j]);
}
x++;
}
}
return cells;
}
那么问题是,如果一个项目占用的 rowspan 和 colspan 大于 1,它会在之后推动其他单元格,我需要将它们删除(e7、e14、e15、e39、e46、e47、e54、e55、e62、e63 )。我需要循环根据作为库存的项目 rowspan 和 colspan 自动计算。 var items 中的项目是 api 响应的样本,因此 3、6、12、240、105 是选项卡 1 的项目。
那么任何人都可以进一步帮助我吗?我被困了好几天。
【问题讨论】:
标签: javascript angularjs inventory