0

melonJS ゲームを作成しています。

私のプレーヤー エンティティ -game.PlayerEntity = me.ObjectEntity.extend({では、その更新関数が衝突をチェックします。

game.PlayerEntity = me.ObjectEntity.extend({
   var collision = me.game.collide(this); 

   if (collision) {
       if (collision.obj.type == me.game.ACTION_OBJECT) {
           console.log("NPCname: " + game.NPCEntity.init); //get settings from NPCEntity
       }
   }

次に、NPC エンティティ オブジェクトで、上記の PlayerEntitygame.NPCEntity = me.ObjectEntity.extend ({に戻りたいと思います。settings.nameこれを行うために、クロージャーを作成しましたreturnSettings()

1)console.log(settings.name)期待どおり「Lee」を出力します

2) return settings.name「未定義」を出力

どうしてこれなの?

game.NPCEntity = me.ObjectEntity.extend ({
    init : function(x, y, settings) {
        settings.image = "wheelie_right";
        settings.spritewidth = 64;
        settings.name = "Lee";
        this.parent(x, y, settings);

        this.collidable = true;
        this.type = me.game.ACTION_OBJECT;

        console.log(settings.name); //works
        console.log("returning... " + returnSettings()); //works

        //closure to return settings values externally
        function returnSettings () {
            return settings.name; //returns undefined when called by PlayerEntity above.
        }
    },

ありがとう!

4

2 に答える 2

1
于 2014-03-16T21:27:33.393 に答える