由于某种原因,在下面的更新函数中无法调用星号行上创建的 player_controller 实例变量。当我运行此代码时,第二个带星号的行(console.log)将识别并将指定变量从 player_controller 打印到控制台。但是,当我尝试在下面的更新函数(双星号行)中使用 player_controller 时,出现错误:“TypeError: this.player_controller is undefined。”
另请注意,如果粗体行被注释掉,其他行(具有类似创建的变量)运行不会出错。
谁能告诉我这里发生了什么?
function Engine(){
var GRAVITY = 0.3;
this.map_loader = new MapLoader();
*this.player_controller = new PlayerController();*
this.map = this.map_loader.load_next_map();
*console.log(this.player_controller.keys_down.A);*
this.update = function(){
**this.player_controller.handle_input(this.map.player);**
gravity(this.map.player);
this.map.player.x += this.map.player.dx;
this.map.player.y += this.map.player.dy;
...
...
编辑:没有意识到我不能在代码块中进行格式化。
这是该应用程序的链接,如果您在此页面上查看 Web 控制台,您会看到我所说的堆积错误。http://lukescode.net/senior_project_game/main.html