我正在为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()。
我真的不知道该怎么做,除非我想这样做,所以屏幕上的每个精灵都是手动硬编码的,没有人想要一个可重复使用的引擎。
答案 0 :(得分:2)
您需要创建entities
类的实例。
var oEntity=new entities();
oEntity.init();//call init method.
答案 1 :(得分:1)
var en = new entities();
en.init();