2016-06-08 83 views
1

我创建了一个HTML5帆布游戏,并将图像对象作为玩家/敌人构造函数的一部分。然后我调用draw函数,传递玩家对象。 这样做有什么缺点吗?我还在运行一个支票以确保在调用游戏循环之前下载了图片。作为HTML5游戏中玩家的财产的图像对象

在大多数情况下,图像对象是使用游戏全局变量创建的。

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

_“这样做有什么不利吗?”__基于观点的___ – Rayon

+0

不是真的,客观地列举给定OP需求的编程模式的优缺点当然是可能的。 –

回答

0

缺点:每个游戏对象拥有自己的DOM图像元素。如果两个或两个以上的敌人看起来相同(具有相同的图像源),则最好只用该源实例化一个图像。

因此,我建议将该图像作为游戏对象原型的一部分,以便在所有实例之间共享。

更高级的技术是使用一个资源管理器,它负责加载和保持图像的跟踪,并因此可以防止在不同原型上重复。

资源管理器很容易让您将多个图像/纹理合并到一个更大的文件中并一次加载它们。见e。 G。 What is the best practice for loading multiple textures in three.js?