微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

绘制函数调用次数过多时的 HTML 画布限制?

如何解决绘制函数调用次数过多时的 HTML 画布限制?

我正在学习一些画布的东西,并且正在用 HTML/JS 制作一个个人项目,所以请原谅我丑陋的代码
在下面的代码中,当只调用 a/b/c/d 函数之一时,一切正常;但是如果调用了不止一个,那么画布就会开始出现奇怪的 flickering colours。在控制台中找不到错误消息。当我减少要绘制的图块数量而不是画布大小本身时,问题似乎会消退。我确实在代码的其他部分多次调用了画布绘制函数,所以这些函数可能是打破内存限制的稻草还是什么?
帮助将不胜感激! Screenshot

for (let y = 0; y < yCount; y++) {
    for (let x = 0; x < xCount; x++) {
        if (tileList[y][x] == 1) {
            a(x,y);
            b(x,y);
            c(x,y);
            d(x,y);
        }
    }
}

function a(x,y) {
    if (x != 0 && y != 0) { //! TOP-LEFT
        if (tileList[y][x - 1] != 1 && tileList[y - 1][x] != 1) {
            subfunctionTopLeft(x,y,palette[0]);
        }
    }
}

function b(x,y) {
    if (x != xCount - 1 && y != 0) { //! TOP-RIGHT
        if (tileList[y][x + 1] != 1 && tileList[y - 1][x] != 1) {
            subfunctionTopRight(x,palette[0]);
        }
    }
}
function c(x,y) {
    if (x != 0 && y != yCount - 1) { //! BottOM-LEFT
        if (tileList[y][x - 1] != 1 && tileList[y + 1][x] != 1) {
            subfunctionBottomLeft(x,palette[0]);
        }
    }
}
function d(x,y) {
    if (x != xCount - 1 && y != yCount - 1) { //! BottOM-RIGHT
        if (tileList[y + 1][x] != 1 && tileList[y][x + 1] != 1) {
            subfunctionBottomright(x,palette[0]);
        }
    }
}

(子函数是一些自定义绘制函数。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。