2013-03-14 29 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。

相關問題