我有一个100x100像素瓷砖地图。当我尝试在我的浏览器上打开我的游戏时,页面会冻结,因为要绘制10000个图块。你怎么能画出这么多瓷砖没有问题。 我draw()函数:瓷砖地图绘画画布
this.draws = function(){
for(j = 0; j < 10000; j++){
this.i = levels[1][1][j] - 17*Math.floor(levels[1][1][j]/17)
game.ctx.fillStyle = "red"
game.ctx.drawImage(game.tiileset,(this.i-1)*this.cellW,(Math.floor(levels[1][1][j]/17))*16,this.cellW,this.cellW,(j-100*Math.floor(j/100))*this.cellW-1,(Math.floor(j/100)+1)*this.cellW,this.cellW,this.cellW)
}
}
您应该只绘制当时屏幕上的内容。让它在滚动时填充。如果将其缩小,则图像应该具有较小版本,这些版本会在不同的缩放范围内呈现。 – Grallen
所有的Math.floor(...)都会裁剪正确的图像并将其放在正确的位置。 levels [1] [1]是tilemap级别的数组[1] [1] [j]是for循环中的当前图块ID –