Javascript HTML画布不';t更新
调用move()时,“y”变量已更改,但长方体仍呈现在相同的位置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
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”作为函数引用传递,而不是在创建间隔时调用它。