当我的障碍列表太大时,为什么会发生此错误?

时间:2019-03-30 15:26:55

标签: javascript 2d-games

我正在用JavaScript制作无限的亚军游戏,并且屏幕上的障碍物数量与分数相对应(每1000个分数中就有一个障碍物)。当分数超过约30到3.5万(所以有30到35个障碍)时,我会收到此错误:

TypeError: Cannot read property 'render' of undefined
    at render (https://replbox.repl.it/data/web_hosting_1/GameMaster1928/Infinite-Runner-Thing/script.js:240:22)
    at loop (https://replbox.repl.it/data/web_hosting_1/GameMaster1928/Infinite-Runner-Thing/script.js:255:3)

我的代码位于https://repl.it/@GameMaster1928/Stuff。 我使飞船无敌,因此您只需等待即可重新创建错误。

由于某种原因,似乎我的障碍之一变得不确定。有人可以看看我的代码并告诉我错误在哪里,以便我可以解决它。

1 个答案:

答案 0 :(得分:1)

obstacles[Math.floor(score / 1000)] = new Obstacle();如果您不以1000分的分数来调用它而跳过一个,则可能会出现问题。请改用obstacles.push( new Obstacle())