gpt4 book ai didi

javascript - 类函数不是函数

转载 作者:行者123 更新时间:2023-11-28 18:47:33 25 4
gpt4 key购买 nike

我正在使用 javascript 创建一个供个人使用的 HTML5 Canvas 游戏引擎,但是我遇到了问题。我创建了一个实体类,其中包含一个 super 构造函数和一些函数(例如删除和添加新实体)以及类中的更新和初始化函数。但是,当我在代码末尾运行 main init 时,使用Entity.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() 而已。

我真的不知道该怎么做,除非我想让屏幕上的每个 Sprite 都手动进行硬编码,并且没有人希望将其用于可重用的引擎。

最佳答案

您需要创建entities 类的实例。

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

关于javascript - 类函数不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com