0

对我正在写的这个引擎真的很恼火,但这很好,这就是 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 都报告它不是一个函数。

先感谢您。

4

2 回答 2

1

你拼错了addEntitiy
那很简单

于 2013-03-14T03:01:41.450 回答
0

从您的代码看来,您的原型方法拼写错误。它应该是 addEntity,而不是 addEntity。

于 2013-03-14T03:02:53.457 回答