背景:对于大学项目,我的任务是创建一个Flappy Bird克隆。最初它工作正常,然后当我开始添加更多图像时,他们停止在Chrome中加载。 Firefox很好(除非我重新加载,但每次后续重新加载都很好)。
我正在制作一个新的' Sprite'对于每个图像和该sprite对象的初始化器,我将创建一个Image对象并分配src。我终于意识到这就是问题,所以我重新安排了我的结构:
var ent_player_img = new Image();
ent_player_img.onload = function()
{
window.ent_player = new Sprite(ent_player_img);
};
ent_player_img.src = "../images/ent_player.png";
我会将ent_player.img分配给构造函数中的新Image对象。但是,这在我的游戏循环中引发了参考错误。
为了解决这个问题,我将所有函数放在我的游戏循环中,在if语句中调用这些对象。
if (typeof ent_player !== undefined)
{
//Draw image
}
但我还是得到了错误。在if语句中,我使用console.log
说typeof ent_player
,其返回为undefined
。
非常疑惑为什么这段代码仍在运行并导致问题,我使用了我选择的调试器(Firebug)。
我在if语句上设置了一个断点,但是,每当我使用调试器逐步执行代码时,它都能完美运行。正确的输出等等。然后,一旦我再次尝试没有调试器,同样的问题。
任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题?
非常感谢。
编辑:Sprite构造函数如下所示:
function Sprite(image)
{
this.img = image;
this.height = this.img.height;
this.width = this.img.width;
this.x = 0;
this.y = 0;
}