理解JavaScript类 - 资源类

时间:2011-01-05 19:10:33

标签: javascript class html5

使用JavaScript / HTML5编写一个简单的视频游戏,我想在一个类中收集所有资源......目前它们遍布整个地方。

所以,举个例子,目前我有一些基本的东西

function c_enemy_sprites() {
  this.image = new Image();
  this.image.src = "res/enemies.png";
  ..
  ..
}

function c_tilemap() {
  this.image = new Image();
  this.image.src = "res/tilemap.png";
  ..
  ..
}

我想把它归为一个类,就像这样

function c_resource() {
  this.enemies.image = new Image();
  this.enemies.image.src = "res/enemies.png";

  this.tilemap.image = new Image();
  this.tilemap.image.src = "res/tilemap.png";
  ..
  ..
}

但是,我不认为这是正确的做法。当我尝试第二次实现时,程序崩溃了。有没有一种简化资源加载的好方法?

2 个答案:

答案 0 :(得分:1)

尝试创建一个对象文字来保存所有内容:

function C_resource(src) {
    this.image = new Image();
    this.image.src = src;
}

var resources = {
    enemies : new C_resource('res/enemies.png'),
    tilemap : new C_resource('res/tilemap.png')
};

resources.enemies.image; // your enemies image.

答案 1 :(得分:0)

尝试初始化对象以将图像资源放入:

function c_resource() {
  this.enemies = {};
  this.enemies.image = new Image();
  this.enemies.image.src = "res/enemies.png";
  this.tilemap = {};
  this.tilemap.image = new Image();
  this.tilemap.image.src = "res/tilemap.png";
  ..
}

你也可以使用:

function Resource(path){
   this.image = new Image();
   this.image.src = path;
   ... further initialization, etc.
}

...然后

function resources(){
  this.enemies = new Resource('res/enemies.png');
  this.tilemap = new Resource('res/tilemap.png');
}