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.
}
},
ありがとう!