事件

Construct 拥有一个出色的 GUI,使开发者能够以最少或无需编码的方式创建游戏。以下文档将回顾如何使用 Construct 的事件表将您的游戏连接到 Basement.fun。

关键组件

您需要向项目中添加一些对象,以使您的 Construct 游戏能够与 Basement.fun 平台互动。
要向项目中添加对象,请转到 布局视图,在布局中右键单击,选择 插入新对象,然后选择要插入项目的对象。添加对象后,它将在您的事件表中可用。

浏览器对象

浏览器对象使您能够写入控制台。它不是必需的,但在验证数据和调试代码时会很方便。

AJAX 对象

AJAX 对象使您的游戏能够与 B3 API 互动。
  • POST 请求 需要您为每个头参数创建单独的操作,并为所有正文参数创建一个 post 到 URL 的操作
  • GET 请求 需要您将所有需要的参数和值组合成单个 URL,以发送请求到 API
  • API 响应 可以使用 AJAX.LastData 引用

JSON 对象

JSON 对象使您的游戏能够处理 JSON 响应。您需要解析 JSON 字符串以使用响应数据。

示例事件

此示例事件将涵盖 BSMNT API 规范中详细描述的 POST 设置分数请求。

示例请求

1

创建函数

在事件表的任何地方右键单击,创建一个函数,并命名为 SetScore
2

设置服务方法头

点击添加操作,选择 AJAX,选择 设置请求头
  • 头字段X-Service-Method
  • 值字段setUserScore
3

设置授权头

再添加一个 AJAX 操作并再次选择 设置请求头
  • 头字段Authorization
  • 值字段Bearer <game secret>
<game secret> 替换为您实际的游戏密钥令牌。
4

配置 POST 请求

再添加一个 AJAX 操作,但这次选择 Post 到 URL。输入以下内容:
  • 标签setUserScore
  • URLhttps://api.basement.fun/launcher
  • 数据{"launcherJwt": "string", "nonce": "string", "score": 0}
  • 方法POST
这是一个示例请求 - 请确保将您的值替换为游戏中的事件设置的变量。

示例响应

示例响应将如下所示:
API 响应
{
    "success": true | false,
    "error"?: "error string",
    "newScore"?: {
        "_id": "unique id",
        "nonce": "nonce",
        "updatedAt": 23151264, // unix 时间戳
        "score": 100.235,
        "gameId": "game uuid",
        "normalizedAddress": "user lowercase address"
    }
}

检索数据

在 Construct 中,让我们从响应中检索 nonce,以便我们可以在稍后使用它来检索分数。
1

创建全局变量

在事件表的任何地方右键单击并添加一个名为 Nonce 的全局变量。
2

添加触发事件

添加一个由您的游戏触发的事件。示例:要在您的自行车与另一辆自行车相撞时捕获用户的分数,请向骑手添加一个 与另一个对象碰撞 条件,并将对象设置为骑手。
3

调用 SetScore 函数

添加操作,选择 函数,并选择 SetScore
4

解析 JSON 响应

添加一个 JSON 操作,选择 解析,并在 JSON 字符串字段中输入 AJAX.LastData
这将从我们的 SetScore 请求中获取响应。
5

提取 Nonce 值

添加一个 系统 操作,选择 设置值,选择 Nonce 变量,并输入 JSON.Get("newScore.nonce")
现在您的 Nonce 变量设置为 API 响应返回的 nonce 了!

完成集成

按照相同的步骤,您可以通过审查所有参数和响应为每个 API 端点创建事件。

可用的 API 端点

最佳实践

错误处理

始终检查 API 响应中的 success 字段,并优雅地处理错误。

变量管理

使用 Construct 的全局变量来存储重要数据,如 JWT 令牌和用户分数。

调试控制台

在开发过程中使用浏览器对象将重要信息记录到控制台。

API 速率限制

注意 API 速率限制,避免在短时间内发出过多请求。

下一步

故障排除