我有一个代码无法识别的声明变量。为什么是这样?

时间:2019-04-09 19:36:28

标签: javascript phaser-framework

我正在编写一个游戏,这是其中的一部分。我希望程序循环显示我上传的精灵运行的不同图片。我做了一个变量,让程序知道正在运行的角色的屏幕上正在显示哪个图片。程序无法识别它是正在声明的变量。我是在用JavaScript犯一个简单的错误吗?

我试图在我的代码中移动变量声明,并在其中放入不同的内容。似乎没有任何作用。

class Example1 extends Phaser.Scene {
    constructor() {
        super({key: "Example1"});
}

//variable for the current running stance which does not work
var playerBoard = 1;
    preload() {
        this.load.image('Background', 'assets/Background.jpg');
        this.load.image('4 JUMP_000', 'assets/4 JUMP_000.png');
        let run1 = this.load.image('3 RUN_000', 'assets/3 RUN_000.png');
        let run2 = this.load.image('3 RUN_001', 'assets/3 RUN_001.png');
        let run3 = this.load.image('3 RUN_002', 'assets/3 RUN_002.png');
        let run4 = this.load.image('3 RUN_003', 'assets/3 RUN_003.png');
        let run5 = this.load.image('3 RUN_004', 'assets/3 RUN_004.png');

    }
/*another variable to help return to the first running stance when the sprite stops running*/
let runningStance = run1;
//function that switches the running stances
runningScene(x,y){

if(this.input.keyboard.on("keyDown_D")){
  while(this.input.keyboard.on("keyDown_D")) {
     if (this.playerBoard = 1) {
         this.playerBoard1 = 2;
         this.image = this.add.image(this.image.x, this.image.y, '3 RUN_001');
         runningStance = run2;
         run1.visable = false;
    }

该程序中的某些代码未包括在内,因为这会占用太多空间。不起作用的是变量的声明,因为它不允许if函数正常工作。我已经安装了移相器,您可以在代码中引用它。输出应该隐藏开始的图片并显示序列中的下一个,即run2。

2 个答案:

答案 0 :(得分:0)

尝试在构造函数中声明playerBoard

constructor() {
  super({key: "Example1"});
  this.playerBoard = 1;
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes

runningStance相同,请查看上面的链接以检查类的工作方式

答案 1 :(得分:0)

此行:

     if (this.playerBoard = 1) {

不好是两个原因。首先,=显然是=====。其次,playerBoard是一个变量,在这里您尝试访问和对象属性。在您声明var playerBoard = 1;的前几行,所以只需阅读

     if (playerBoard === 1) {