繁体   English   中英

Phaser - 在启动项目中引用“this”时遇到问题

[英]Phaser - having problems referencing with "this' in starter project

问题

我是 Phaser 的新手。 我开始开发我的第一个真正的游戏,并且已经遇到了一个主要的障碍。 具体来说,无论我走到哪里,我都会收到与“this”相关的错误。

我的学习方法

在进入具体错误之前,我只想解释一下我的设计过程。 基本上,找到一个教程或代码片段,然后抓住它并尝试在我的游戏中使用它。 通过这种方式学习,我认为我遇到了问题,因为我的编码模式与我试图复制的教程或示例中的不同。 有些人使用扩展 Phaser 类,其他人根本不使用类 - 我认为这可能是我问题的根源。

“这”是我的痛

以下是我在项目中遇到的一些特定编码错误:

1. 创建一个点击处理程序在我的游戏中,我需要在点击场景时运行一个函数。

  // in my create event

  this.input.on('pointerdown', function (pointer) {
      console.log(pointer);
  })

结果:

输入问题

2. 改变光标我只想改变光标。

    // In my create event

    this.input.setDefaultCursor('url(assets/cursors/hand.cur), pointer');

结果:

光标问题

在这一点上,我意识到我的编码风格有些不对劲。

在我走得更远之前,我需要弄清楚我做错了什么。

源代码

BasicGame.Game = function (game) {

};

var ourGame;

BasicGame.Game.prototype = {

  create: function () {

    // Dont work
    //var allScenes = this.Scene.scenes;

    // Dont work
    this.input.setDefaultCursor('url(assets/cursors/hand.cur), pointer');

    // Dont work
    //this.input.on('pointerdown', function (pointer) {
      //console.log(pointer);
   // })

    //console.log(allScenes);

    // This DOES work
    this.setupText();

    
  },

  update: function () {
   
  },

  //---------------------------
  // CREATE RELATED FUNCTIONS
  //---------------------------
  setupText: function () {
    this.instructions = this.add.text(
      this.game.width / 4,
      this.game.height - 100,
      'Use Arrow Keys to Move, Press Z to Fire\n' +
      'JOHNNY/clicking does both', {
        font: '20px monospace',
        fill: '#fff',
        align: 'center'
      }
    );
  }



  //---------------------------
  // UPDATE RELATED FUNCTIONS
  //---------------------------
  

  

};

我试图接受这两个评论,但不知道如何接受。 我查看了文档和 console.log(this),发现我没有正确引用 Phaser 类,正如两条评论所建议的那样。 所以我通过正确引用 Phaser 类来让它工作。 我用了 self = this; 诡计

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM