javascript - 如何追踪Phaser网页游戏的用户点击?

标签 javascript google-sheets-api phaser-framework

所以我用 Phaser.js 框架制作了一个网页游戏。如果没有数据库,我想跟踪游戏中的事件/ Action 。数据至少包含两个字符串:time_stampevent(即“单击“播放”按钮”)。
我当前的尝试是将数据写入我的谷歌表格。如何做到这一点?

我想要这样的东西:

“播放”按钮的功能

playGame() {  
  // Go to gameplay scene  
  scene.start(Gameplay)
  // Script to insert data to google sheet  
  submitEvent(timestamp, "click the 'Play' button"){  
  }
}

或者也许有更简单的方法来进行跟踪?需要是一项免费服务,并且能够使用 JavaScript 在线存储数据。

我尝试了Google Sheet API,但对文档感到困惑,似乎我需要播放器登录并授权,是否可以避免这种情况?大多数教程都使用HTML Form来发送数据,我没有使用。

最佳答案

我相信您的目标如下。

  • 您希望在未经授权的情况下使用 Javascript 将时间戳“点击“播放”按钮” 的值添加到您的 Google 电子表格中。

在当前阶段,为了使用 Sheets API 将值放入电子表格中,需要使用从 OAuth2 和服务帐户检索的访问 token 。我担心在这种情况下,脚本可能会有点复杂,并且可能不是您期望的方向。

如果您想在没有授权过程的情况下使用简单的脚本将值添加到电子表格中,那么使用由 Google Apps 脚本创建的 Web Apps 怎么样?当使用Web Apps时,您的目标也许能够实现。当使用 Web Apps 将值放入电子表格的方法是用 Javascript 实现时,请执行以下流程。

用法:

1。创建电子表格。

请创建电子表格。您可以通过访问 https://docs.google.com/spreadsheets/create 创建新的电子表格。在本例中,电子表格是在 Google 云端硬盘的根文件夹中创建的。请打开电子表格上的脚本编辑器。

2。准备 Google Apps 脚本。

请将以下脚本复制并粘贴到脚本编辑器中并保存脚本。

function doGet(e) {
  const { value1, value2 } = e.parameter;
  SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].appendRow([value1, value2]);
  return ContentService.createTextOutput("Done.");
}

3。部署网络应用程序。

详细信息可见the official document .

请使用脚本编辑器的新 IDE 进行设置。

  1. 在脚本编辑器中,请点击脚本编辑器右上角的“单击部署”->“新建部署”。
  2. 请点击“选择类型”->“网络应用”。
  3. 请在“部署配置”下的字段中输入有关 Web 应用程序的信息。
  4. 请为“执行为”选择“我”
  5. 请为“谁有权访问”选择“任何人”
  6. 请点击“部署”按钮。
  7. 当“网络应用程序要求您授权访问您的数据时。”显示时,请单击“授权访问”按钮。并且,请授权范围。
    • 此授权过程仅一次。当您使用 Javascript 访问 Web Apps 时,不需要授权,因为这里已经完成了授权。我认为这可能是您预期方向的一个重要点。
  8. 复制网络应用程序的 URL。就像https://script.google.com/macros/s/###/exec。此网址用于您的 HTML。

4。测试。

value1value2的值为timestamp“点击‘播放’按钮”时, Javascript的示例脚本如下。并且,请设置您的 Web Apps URL。并且,请在您的脚本中使用此脚本。

function sample(value1, value2) {
  const webAppsURL = "https://script.google.com/macros/s/###/exec"; // Please set your Web Apps URL.

  fetch(`${webAppsURL}?value1=${value1}&value2=${value2}`).then(async (res) => console.log(await res.text()));
}
  • 当您通过给出值来运行 sample(value1, value2) 时,这些值将被放入电子表格的第一张工作表中。

注意:

引用文献:

关于javascript - 如何追踪Phaser网页游戏的用户点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74925713/

相关文章:

javascript - Dojo - Promise 无法访问变量

java - 使用maven出现异常

javascript - Facebook 评论框审核

javascript - Vuejs 2 + 表单验证

javascript - 如何将 v8 值转换为数组

javascript - 单击处理程序到单个孤立的 Sprite

javascript - 在 Phaser 中绘制圆弧并应用补间以在 5 秒内缩短其长度

python - 使用 python 将数据框上传到 google 表格时出错?

google-sheets - Google Sheets api append 方法不在最后一行后添加行

phaser-framework - 使用移相器更改 Sprite 的色调