我正在创建一个HTML5画布游戏,并使图像对象成为玩家/敌人构造函数的一部分。然后我调用draw函数,传递player对象。 这样做有什么不利之处吗?我还在运行检查以确保在调用游戏循环之前已下载图像。
在大多数情况下,图像对象是使用游戏全局变量创建的。
function Player() {
this.width = 120;
this.height = 129;
this.img = new Image(); // image object
this.img.src = 'img/player';
}
function Enemy() {
this.width = 120;
this.height = 129;
this.img = new Image(); // image object
this.img.src = 'img/enemy';
}
非常感谢
答案 0 :(得分:0)
缺点:每个游戏对象都拥有自己的DOM Image元素。如果两个或多个敌人看起来相同(拥有相同的图像源),您最好只使用该源实例化一个图像。
因此我建议将该图像作为游戏对象原型的一部分,以便在所有实例之间共享。
更先进的技术是使用资源管理器,负责加载和跟踪图像,从而防止重复不同的原型。
资源管理器可以轻松地将多个图像/纹理组合成一个更大的文件并立即加载它们。见e。 G。 What is the best practice for loading multiple textures in three.js?