【发布时间】:2011-09-04 19:54:46
【问题描述】:
//Set the number of rows and columns for the board
var rows = 10;
var columns = 10;
var offset= 0.5;
//Create the board, setting random squares to be obstacles
var board = [];
for (var x = 0; x < columns; x++)
{
board[x] = [];
for (var y = 0; y < rows; y++)
{
board[x][y] = 0;
}
}
function draw_grid(size, amount, ctx){
ctx.strokeStyle = "#FFF";
for (var i=0.5; i<size*amount+1; i+=size){
ctx.moveTo(0,i);
ctx.lineTo(size*amount, i);
ctx.moveTo(i,0);
ctx.lineTo(i, size*amount);
ctx.stroke();
}
}
function update_grid(grid, ctx){
ctx.fillStyle = "#000";
for (var i=0; i<grid.length; i+=1){
for (var a=0; a<grid[i].length; a+=1){
if (grid[i][a]==1){
ctx.fillRect((i*32)+offset, (a*32)+offset, 32, 32);
}
}
}
}
game_area = document.getElementById("a");
context = game_area.getContext('2d');
board[0][3] = 1;
function on_enter_frame(){
context.clearRect(0,0, game_area.width, game_area.height);
context.fillStyle = "#28F";
context.fillRect(0,0,500,500);
draw_grid(32, 10, context);
update_grid(board, context);
}
setInterval(on_enter_frame,30);
这段代码似乎占用了很多内存,有人知道为什么吗?刚开始用html5编程...我相信它与update_grid函数中的for循环有关,帮助理解
【问题讨论】:
-
既然你把它标记为
lag,你的意思是它很慢还是真的很占内存? -
"programming in html5" 你在ECMAScript 中编程,HTML5 是 DOM 的规范,它是被操纵的……
-
滞后,因为这会占用太多内存并最终导致 Firefox 崩溃......
标签: javascript html memory-leaks setinterval html5-canvas