Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript在HTML5中重新绘制画布_Javascript_Html_Canvas - Fatal编程技术网

使用Javascript在HTML5中重新绘制画布

使用Javascript在HTML5中重新绘制画布,javascript,html,canvas,Javascript,Html,Canvas,我正在创建一个点击清除游戏。一旦用户单击某个砖块,其相邻的砖块将检查颜色是否相同,并且所有这些砖块将立即清除 使用clearRect()函数清除这些值 现在,在上面的砖块和下面的砖块之间留下一块白色的补丁,上面的砖块悬着 现在我想把这些砖块放在上面向下。我该怎么做。。? Plz help问题很模糊,但根据标题,您需要先清除画布,然后才能重新绘制。否则,绘制的元素将简单地堆叠在彼此的顶部 为此,在画布上调用函数clearRect: function clear() { var canvas

我正在创建一个点击清除游戏。一旦用户单击某个砖块,其相邻的砖块将检查颜色是否相同,并且所有这些砖块将立即清除

使用clearRect()函数清除这些值

现在,在上面的砖块和下面的砖块之间留下一块白色的补丁,上面的砖块悬着

现在我想把这些砖块放在上面向下。我该怎么做。。?
Plz help

问题很模糊,但根据标题,您需要先清除画布,然后才能重新绘制。否则,绘制的元素将简单地堆叠在彼此的顶部

为此,在画布上调用函数
clearRect

function clear() {
    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");
    ctx.clearRect(0, 0, 500, 500);
}
其中,
canvas
是画布的ID,
500500
是维度。现在,您将拥有一个空画布,可以在其中重新绘制所有内容


我也曾经创建过,您可以从源代码中学习。

我想我理解您的要求。如果是这样,那么你想知道当下面的块被移除时,如何向下移动这些块

这只是随着游戏循环的每次迭代增加x位置(记住画布从0,0开始)的问题

增加多少?那就是最高的“实心塔”所在的地方。也就是说,假设您有一列10个令牌,然后删除7个令牌。下面的3个需要全部下降到剩下的6个的高度-这将是
板高度-(6*令牌高度)

*
*
*

+我成功地用DOM重新绘制了HTML画布

    var c = document.getElementsByName("myCanvas")[0];

    if (c != null)
    {
        c.remove();
    }

    var c = document.createElement("canvas");
    c.setAttribute("name", "myCanvas");
    c.setAttribute("width", 900);
    c.setAttribute("height", 600);
    c.setAttribute("style", "border:1px solid #d3d3d3");

请把你的问题提得更清楚些。如果可能的话,发布示例代码。我想创建一个类似的游戏,但在单击我的砖块后,砖块仍然悬空。我想把它们向下移动Marcok在这里完美地回答了你关于如何重新绘制画布的问题。我建议从另一个问题开始,更详细地说明如何让“砖头”倒下,以及您当前的代码示例。
    var c = document.getElementsByName("myCanvas")[0];

    if (c != null)
    {
        c.remove();
    }

    var c = document.createElement("canvas");
    c.setAttribute("name", "myCanvas");
    c.setAttribute("width", 900);
    c.setAttribute("height", 600);
    c.setAttribute("style", "border:1px solid #d3d3d3");