我正在玩JS,发现了一个小HTML5游戏教程,我觉得修改起来很酷。 (这是结果:http://www.lostdecadegames.com/demos...e_canvas_game/)
所以我稍微修改了一下,让循环绘制背景。绘图本身成功了,但它有些不对劲。 我发现我必须清除画布并重绘每一帧的所有内容。我是这样做的:
ctx.clearRect(0,0,canvas.width,canvas.height);
结果是清理发生在循环完成绘制图像之前。
周期是:
不知怎的,它不会输出背景图块......
我在这里包含了我的修改: http://jsfiddle.net/swenn/6mWkU/
可能是什么问题?
答案 0 :(得分:1)
我发现你的代码有问题,你没有在绘制地板后将你的tileY变量设置回零。这会使画布进一步向下绘制,例如不在画布的视图空间中。
//Start of your render function.
tileY = 0;
tileX = 0;
正如我在评论中写的那样,你应该requestAnimationFrame安排你的绘画。
您可能还想了解一种更好的绘制地板的方法,可能会制作一个更大的纹理并仅绘制一次而不是for循环。
编辑:修正了实际上是更新版本的jsfiddle链接。