我刚开始我的第一个 JavaScript 游戏项目,我不确定在 JS 中加载资产(图像和声音)的最佳方式是什么。问题是我正在使用继承,因此在需要时加载资产存在问题(例如: Paddle extends Entity ):
桨:
function Paddle( layer )
{
Entity.call(this, layer);
}
Paddle.prototype.SetAnimations = function()
{
this.image.onload = // INITIALIZE this.sprite using this.image
this.image.src = "js/assets/paddle/blue/paddle_blue_idle.png";
};
实体:
function Entity(layer)
{
this.SetAnimations();
layer.add( this.sprite );
}
所以这里的问题是,当我使用 Paddle 构造函数时,第一件事是调用 Entity ( parents ) 构造函数。然后实体构造函数使用 Paddle.prototype.SetAnimations 设置图像源并在加载后,使用 KineticJS 我正在使用这个加载的图像创建 Sprite。但在此之前,Entity 会尝试将 this.sprite 添加到图层(并且 sprite 尚未初始化)。
我的问题是,在 JS 中加载资产的最佳方式是什么(在每个场景之前/在整个游戏启动时或 @runtime 使用可能的事件监听器??)。任何帮助,将不胜感激。