类函数不是函数

时间:2016-01-28 06:14:38

标签: javascript html5 function class

我正在为HTML5 Canvas创建一个游戏引擎,使用javascript供个人使用,但是我遇到了问题。我创建了一个实体类,它包含一个超级构造函数和一些函数(比如删除和添加新实体)以及类中的更新和初始化函数。但是当我在代码末尾运行主init时,使用entities.init();它报告错误并说它不是一个功能,即使我确定我公开了它。这是代码

function entities(){
//Entities class holds all objects that: take damage, move,and do things that a static object could not.//
    //A list of all current entities in game//
var entitiesList = new Array();

//Allows removal of an entitiy from the game, and the current list of entities//
function removeEntity( id){
    //snip!//
}

//entity superclass//
function entity( name, spriteName, HP){
    //snip!//
    var updateEntity = new function(){
        console.log("UPDATING Entities")
        //drawSprite(sprite, posX, posY);
        if(this.timer > 0){
            this.timer = this.timer - 1;
        }else{
            removeEntity(this.entityID);
            delete this;
        }
        if(this.health == 0){
            removeEntity(this.entityID);
            delete this;
        }
    }
}

    //Method to create a new entity//
function createNewEntity( entName,  sprite,   posX,  posY, HP){
    //snip!//
}

var damageField = new function(radius, power, posX, posY) {
//Damage any entities within a "square" radius of an entity. I plan to add radial version later//
//snip!//
}
this.init = function(){
    console.log("INIATING ENTS");
    createNewEntity("NUGGET", "chaingun_impact.png", 250, 250);
}
//update function for superclass update function to call//
this.update = function(){
    entity.updateEntity();
}
}

主要初始化函数

function init(){
pushToSheetList();
jsonParser();
entities.init();
}

此外,我99.99%确定没有调用更新函数,或者它是相同的代码,而不仅仅是update()。

我真的不知道该怎么做,除非我想这样做,所以屏幕上的每个精灵都是手动硬编码的,没有人想要一个可重复使用的引擎。

2 个答案:

答案 0 :(得分:2)

您需要创建entities类的实例。

var oEntity=new entities();
oEntity.init();//call init method.

答案 1 :(得分:1)

 var en = new entities();
 en.init();