图像对象作为HTML5游戏中玩家的属性

时间:2016-06-08 16:44:20

标签: javascript html5 canvas

我正在创建一个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';
 }

非常感谢

1 个答案:

答案 0 :(得分:0)

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

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

更先进的技术是使用资源管理器,负责加载和跟踪图像,从而防止重复不同的原型。

资源管理器可以轻松地将多个图像/纹理组合成一个更大的文件并立即加载它们。见e。 G。 What is the best practice for loading multiple textures in three.js?