Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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 HTML画布不';t更新_Javascript_Html_Canvas_2d Games - Fatal编程技术网

Javascript HTML画布不';t更新

Javascript HTML画布不';t更新,javascript,html,canvas,2d-games,Javascript,Html,Canvas,2d Games,调用move()时,“y”变量已更改,但长方体仍呈现在相同的位置 var c = document.getElementById("can"); //my canvas id is "can" var pen = c.getContext("2d"); var y = 200; setInterval(render(y), 1000/30); //update 30 times per second function move(dir){ y=y+dir; } function

调用move()时,“y”变量已更改,但长方体仍呈现在相同的位置

var c = document.getElementById("can");  //my canvas id is "can"  
var pen = c.getContext("2d");
var y = 200;
setInterval(render(y), 1000/30); //update 30 times per second

function move(dir){
    y=y+dir;
}

function render(height) {
    pen.beginPath();
    pen.clearRect(0,0,888,500);
    pen.beginPath();
    pen.rect(30,height,50,50); //Draw the player
    pen.fillStyle="green";
    pen.fill();
}

因为函数move()从未使用过。如果更改其高度或宽度,它可能会更新:)

您必须在setInterval内调用
move
render

var c=document.getElementById(“can”)//我的画布id是“can”
var pen=c.getContext(“2d”);
var y=0;
var-dir=20;
函数值(val){
dir=val;
}
setInterval(函数(){
移动(dir);
渲染(y);
}, 1000); //每秒更新30次
功能移动(dir){
返回y=y+dir;
}
函数渲染(高度){
//控制台。原木(高度);
pen.beginPath();
pen.clearRect(0,088500);
pen.beginPath();
pen.rect(30,高度,50,50);//绘制播放器
pen.fillStyle=“绿色”;
笔。填充();
}
Down
向上的
停止

它被使用了,我只是没有在这里包含代码,因为我认为它不是必需的。我使用按钮来更改它,并检查变量本身是否确实在更改。您需要将“render”作为函数引用传递,而不是在创建间隔时调用它。