HTML5画布清理和重绘与for循环
HTML5 canvas clearing and redrawing with for loop
我正在玩JS,发现了一个小的HTML5游戏教程,我认为修改它会很酷。(这是结果:http://www.lostdecadegames.com/demos...e_canvas_game/)
我稍微修改了一下,让for循环来绘制背景。这幅画本身成功了,但有些地方出了问题。我发现我必须清除画布并重新绘制每一帧的所有内容。我是这样做的:
ctx.clearRect(0,0,canvas.width,canvas.height);
结果是清除发生在循环完成绘制图像之前。
循环为:
- 明确帆布
- for循环绘制背景贴图
- 画点别的
不知道为什么它不输出背景贴图…
我在这里包括了我的修改:http://jsfiddle.net/swenn/6mWkU/
可能是什么问题?
我发现你的代码的问题,你没有设置你的tileY变量回到零绘图地板后。这会导致画布将它画得越来越低,例如不在画布的视图空间中。
//Start of your render function.
tileY = 0;
tileX = 0;
工作版本,webkit
正如我在评论中所写的,你应该请求animationframe来安排你的绘图。
你可能还想研究一种更好的绘制地板的方法,也许制作一个更大的纹理,只绘制一次,而不是在for循环中。
编辑:修正了jsfiddle链接实际上是更新版本
相关文章:
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 我的javascript for循环不起作用
- For循环冻结Javascript
- 如何在for循环中添加事件侦听器
- 双“for”循环(循环)
- javascript for循环不起作用
- for循环中的javascript if语句找不到==
- Javascript在for循环中等待处理请求
- For循环在Jquery中只运行一次
- 如何在for循环中使用计数器
- for循环中的JavaScript闭包
- 为什么我们在ES2015中需要一个新的for循环结构,而我们已经有了for、forEach
- For循环在调用时未运行
- 如何使用for循环添加所有按钮'单击事件
- 如何更改在for循环中生成的圆的位置
- 为什么这个For循环会使浏览器实验室崩溃
- 为什么我使用javascript获得了一个无限的for循环
- 在for循环中使用多维数组设置google.maps.Marker图标
- 如何在angularJS中运行for循环而不使用html标记