首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript - 2D数组初始化速度

javascript - 2D数组初始化速度
EN

Stack Overflow用户
提问于 2014-05-25 02:05:10
回答 1查看 59关注 0票数 0

我正在制作一个2D等距游戏,其中瓦片贴图以2D数组的形式保存。这是一个16*16地图的样子,让你明白:

在游戏循环开始之前,必须初始化map数组的大小和内容,我注意到这是加载程序时最大的瓶颈之一。如果地图是5000*5000,在我的相对高端的计算机上可能需要大约7秒的时间(我认为这似乎相当慢)。

这更多的是javascript速度的问题,还是我的代码做了一些非常低效的事情?

保存磁贴内容的数组是这样初始化的:

代码语言:javascript
运行
复制
// Create Array to represent tile contents
mapArray = new Array(mapWidth);
for (var i = 0; i < mapWidth; i++) {
    mapArray[i] = new Array(mapHeight);
    for (var j = 0; j < mapHeight; j++) {
        mapArray[i][j] = new Tile("water", 0, false);
    }
}

该数组包含的对象是下面的tile类:

代码语言:javascript
运行
复制
// Tile class
function Tile(type, height, mouseOver) {
    // Add object properties like this
    this.type = type;
    this.height = height;
    this.mouseOver = mouseOver;
}
EN

回答 1

Stack Overflow用户

发布于 2014-05-25 02:32:01

如果你在每个磁贴上注册单独的事件监听器,那肯定会减慢你的程序。考虑通过只侦听容器上的mouseover/mousemove事件,然后从鼠标的(x,y)坐标派生平铺来减少侦听器的数量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23848161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档