对我正在写的这个引擎真的很恼火,但这很好,这就是 Stack Overflow 的用途。所以我有我所有的游戏“实体”原型从一个对象:
function Scene(name, description) { // Initialize the Scene Object
/* VARIABLES */
this.entities = [];
/* METHODS */
};
Scene.prototype.addEntitiy = function(entity) { // Add an entity to this scene
this.entities.push(entity);
}
为了简单起见,我删除了非必要的代码(其他变量和方法)。如您所见,Scene 正在对 addEntity(entity) 进行原型设计。我稍后在代码中实例化两个场景对象(Scene1、Scene2)。场景1似乎没有问题。这是场景2:
// Scene Two
var Scene2 = new Scene('Play Game', 'Actual game screen for playing Pong!');
Scene2.addEntity(GameBall);
Engine.scenes.push(Scene2);
Engine.scenes 包含所有场景。同样,Scene1 完全没有错误(带有一个 addEntity 调用的新场景)。然而,场景二坚持这一点:
TypeError: Scene2.addEntity is not a function
Wtf,对 Scene1 工作得很好吗?此外,Scene2 工作正常,直到我添加了第二个要加载的实体(理论上与 GameBall “相同”,除了一些变量值)。因此,为了彻底起见,我在错误出现后立即注释掉了新实体。仍然不是一个功能。我完全删除了新的(有问题的?)行,仍然不是一个函数。从那以后就一直这样。Chrome 和 Firefox 都报告它不是一个函数。
先感谢您。