2015-05-19 2 views
0

У меня возникла проблема с Phaser. В принципе, переменная игрока, определенная в основной функции школьного двора, не является доступной. Сначала я попытался определить его вместе с другими переменными, но поскольку это не сработало, я попытался определить его в основной функции. Я получаю сообщение об ошибке «Uncaught TypeError: не могу установить свойство« x »неопределенного», когда я пытаюсь двигаться по скорости. Надеюсь, кто-то может помочь, спасибо заранее.Phaser: невозможно получить доступ к переменной, определенной в другом виде

var Schoolyard = function() { 
    this._player = null; 
}; 

var map; 
var backgroundLayer; 
var backgroundLayer2; 
var collisionLayer; 
var cursors; 

Schoolyard.prototype = { 
    preload: function() { 

    }, 
    create: function() { 
     this.game.physics.startSystem(Phaser.Physics.ARCADE); 
     map = this.game.add.tilemap('schoolyard'); 

     map.addTilesetImage('tiles'); 
     map.addTilesetImage('tiles2'); 

     backgroundLayer = map.createLayer('BackgroundLayer'); 
     brackgroundLayer2 = map.createLayer('BackgroundLayer2'); 
     collisionLayer = map.createLayer('CollisionLayer'); 

     this._player = this.game.add.sprite(400,400,'main'); 

     this.game.physics.enable(this._player); 

     this.game.camera.follow(this._player); 

     this._player.frame = 30; 

     cursors = this.game.input.keyboard.createCursorKeys(); 
    }, 
    update: function() { 
     if (cursors.right.isDown) 
      this._player.velocity.x = 150; 
    } 
}; 
+0

скорость является свойством объектов тела. – casarock

ответ

2

Хорошо, вот как ответ:

Velocity является свойством физического тела.

Вы должны использовать:

this._player.body.velocity.x = 150 
+0

Большое вам спасибо! Я чувствую себя очень глупо, не замечая этого, но еще раз спасибо! – Mathias

Смежные вопросы