未正确调用原型方法

时间:2013-03-14 03:00:11

标签: html5 canvas timeout game-loop

我正在写这个引擎真的很恼火,但那没关系,这就是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(实体)。我稍后在代码中实例化TWO Scene对象(Scene1,Scene2)。 Scene1似乎没有问题。这是Scene2:

    // 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都报告它不是一种功能。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

你错误拼写addEntitiy 很容易

答案 1 :(得分:0)

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