我正在编写一个游戏,这是其中的一部分。我希望程序循环显示我上传的精灵运行的不同图片。我做了一个变量,让程序知道正在运行的角色的屏幕上正在显示哪个图片。程序无法识别它是正在声明的变量。我是在用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。
答案 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) {