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) のプロトタイプを作成しています。コードの後半で 2 つの 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 呼び出しが 1 つある新しいシーン) ではまったくエラーはありません。ただし、シーン 2 は次のように主張します。

TypeError: Scene2.addEntity is not a function

ところで、Scene1 はうまくいきましたか? また、ロードする 2 番目のエンティティを追加するまで、Scene2 は正常に機能しました (いくつかの変数値を除いて、理論的には GameBall と「同一」です)。したがって、徹底的にするために、エラーが表示されたらすぐに新しいエンティティをコメントアウトしました。まだ関数ではありません。新しい(問題のある?)行を完全に削除しましたが、まだ関数ではありません。それ以来ずっとそうです。Chrome と Firefox は両方とも、これは機能ではないと報告しています。

前もって感謝します。

4

2 に答える 2

1

つづりを間違えaddEntitiyました。
それは簡単だった

于 2013-03-14T03:01:41.450 に答える
0

コードから、プロトタイプ メソッドのスペルが間違っているようです。addEntity ではなく、addEntity である必要があります。

于 2013-03-14T03:02:53.457 に答える