2013-03-14 63 views
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(实体)的原型。稍后在代码中实例化两个Scene对象(Scene1,Scene2)。 Scene1似乎没有问题。这是场景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都报告说这不是一项功能。

预先感谢您。

回答

1

你拼错了addEntitiy
这很简单

+0

Gah!我真的拼错了很多次吗?悲伤......愚蠢的我。几乎是滑稽的,因为它在拼写错误的方法上效果如此之好:) – 2013-03-14 03:03:44

0

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