我正在尝试将回调collectStar
传递给overlap
方法。但是,它已经过undefined
,我不知道为什么。
如果我通过() => {}
而不是参考,它会起作用;然而,这并不是我想要的,因为它不可重复使用。
以下是我正在做的事情的基础:
class SimpleGame {
// Init the game
constructor(width: number, height: number) {
this.game = new Game(width, height, Phaser.AUTO, 'content', { preload: this.preload, create: this.create, update: this.update })
}
// Callback
collectStar(player: Rope, star: Rope) {
star.kill()
}
// The update loop
update(){
this.game.physics.arcade.overlap(
this.player,
this.stars,
this.collectStar,
undefined,
this
);
}
}
document.addEventListener('DOMContentLoaded', e => {
new SimpleGame(800, 600)
})
为什么这会以未定义的方式传递?