相位器:不能访问在其他作用域中定义的变量
Phaser: Cannot Access Variable Defined in Other Scope
我在Phaser中遇到了一个问题。基本上,在主要校园功能中定义的玩家变量是不可访问的。我首先尝试将它与其他变量一起定义,但由于这不起作用,我尝试在主函数中定义它。当我尝试按速度移动时,我只得到错误"未捕获的类型错误:无法设置未定义的属性'x'"。我希望有人能帮忙,提前谢谢。
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;
}
};
好的,下面是答案:
速度是物理物体的一种属性。
你应该使用:
this._player.body.velocity.x = 150
相关文章:
- 在具有命名作用域的自定义Polymer元素中隐藏表行
- 如何在html中以角度显示自定义指令的作用域
- 如何在angularjs中将多个作用域变量传递到自定义指令中
- AngularJS:如何调用指令中定义的函数'控制器的作用域
- AngularJS:ngRepeat作用域在具有隔离作用域和ngTransclude的自定义指令中失败
- AngularJS指令中的作用域未定义,控制器中有ajax请求
- ReferenceError:regeneratorRuntime未定义(但在作用域内工作)
- 监视自定义指令属性在父作用域更改时不发生更改
- 在全局作用域中定义的具有相同名称的变量
- 角度:创建可以调用作用域函数的自定义指令
- AngularJS指令作用域未解析(“属性名称未定义”错误)
- $scope变量在指令隔离作用域中未定义
- AngularJS自定义指令在继承父作用域时访问模板中的属性
- 无法从具有隔离作用域的指令中访问控制器中定义的对象
- 在指令的隔离作用域中定义的调用函数
- 如何使 AngularJS 指令在不隔离作用域的情况下清楚地定义其依赖关系
- JavaScript 通过脚本标签定义作用域
- 在循环作用域中定义变量或应超出作用域
- 如何从事件处理程序调用 AngularJS 作用域定义的函数
- 使用模块全局作用域定义可从prototype访问的私有类字段