gpt4 book ai didi

javascript - 为什么这个 For 循环在 Canvas 中不起作用?

转载 作者:行者123 更新时间:2023-11-29 22:16:13 25 4
gpt4 key购买 nike

我试图让 Canvas 循环显示 i - 我希望 i 像计数 t 一样变化>,从1-9不停歇。我只是不知道出了什么问题。 JavaScript 看起来像这样:

window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback){window.setTimeout(callback, 1000/60)};
})();

var cvs = document.getElementById("canvasId"),
c = cvs.getContext("2d"),
t = 0;

window.onload=function loop(){
window.requestAnimFrame(loop);
t++;

for(i=0;i<10;i++){
c.clearRect(0,0,cvs.width,cvs.height);
c.font = "bold 90px Arial";
c.fillText(i + " " + t, 100, 200);
}
};

http://jsfiddle.net/luxiyalu/9UZU5/

这是一个小游戏的一部分,我在这里卡了2天;如果有人能告诉我它有什么问题...非常感谢!

最佳答案

当您在绘图函数中将 i 从 0 迭代到 9 时,两次绘图之间没有剩余时间,用户只能看到最后一次迭代值,即 9。

我不确定你真正想要实现什么,但看起来你想要这个:

var cvs = document.getElementById("canvasId"),
c = cvs.getContext("2d"),
t = 0,
i = 0;

window.onload = function loop(){
window.requestAnimFrame(loop);
i++;
if (i==10) {
i = 0;
t++;
}

c.clearRect(0,0,cvs.width,cvs.height);
c.font = "bold 90px Arial";
c.fillText(i + " " + t, 100, 200);

};

Demonstration

关于javascript - 为什么这个 For 循环在 Canvas 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15019485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com