game-maker - gamemaker studio 2 中的 http_request 问题
问题描述
我试图在 gamemaker 2 中做一个 http 请求,但我不明白它是如何工作的!实际代码:
var map = ds_map_create();
ds_map_add(map, "Authorization", "Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
var url = "https://api.leref.ga/" //example api
http_request(url, "GET", map, "");
json = async_load[? "result"];
show_debug_message(json)
我检查了gml手册,我什至完全按照解释做了,但我总是得到同样的错误:
解决方案
如果我正确理解了您的示例,您将在发送 http 请求后立即访问 async_load。
问题是此时 async_load 不存在,您无法自己制作。您需要使用 HTTP 异步事件并从那里的 async_load 读取数据。
引擎将处理触发事件,但它会为每个定义了该事件的对象触发它,因此您需要存储来自 http_request 的返回值并将其与异步事件中 async_load 的“id”值进行比较。
我还注意到您在 Step Event 中有您的代码。这将导致您的请求每秒被调用多次,因此我建议将代码放在 Start、Alarm 或 Key/Mouse Press Event 中进行测试。