所以我正在尝试用es6类来做Phaser 3。我的代码:
class Pcu extends Phaser.Scene {
constructor() {
super({key: 'Create',active: true});
this.bla = 0
}
preload() {}
create() {
this.bla = 1
}
}
module.exports = Pcu
和:
const Phaser = require('phaser')
const Pcu = require('./scenes/Pcu')
class Main extends Phaser.Game {
constructor() {
super({
type: Phaser.AUTO,
})
this.scene.add('Pcu', new Pcu(), false);
this.aa = new Pcu()
}
blabla() {
console.log(this.aa.bla)
}
}
module.exports = Main
现在我的问题是(考虑我的代码)在
this.bla
中修改后如何从Main
中访问create()
吗? (现在console.log(this.aa.bla + 1)
仅返回0)顺便说一句,有没有更好的方法来做
this.aa = new Pcu()
?我的意思是现在就像我在做两次Pcu()
一样。对? 最佳答案
在您的行中
this.scene.add('Pcu', new Pcu(), false);
您将在没有引用的情况下将
Pcu
类的新实例传递给scene.add()
函数。这意味着您将无权访问Pcu
实例。我认为您想要的是这样的东西(反转您的声明和
Pcu
实例的使用):this.aa = new Pcu();
this.scene.add('Pcu', this.aa, false);
然后,当您调用
console.log(this.aa.bla)
时,应该会看到所需的结果:1
。关于javascript - es6类的相位器3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52171910/