首页 > 解决方案 > 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手册,我什至完全按照解释做了,但我总是得到同样的错误:

标签: game-makergmlgame-maker-studio-2game-maker-language

解决方案


如果我正确理解了您的示例,您将在发送 http 请求后立即访问 async_load。

问题是此时 async_load 不存在,您无法自己制作。您需要使用 HTTP 异步事件并从那里的 async_load 读取数据。

引擎将处理触发事件,但它会为每个定义了该事件的对象触发它,因此您需要存储来自 http_request 的返回值并将其与异步事件中 async_load 的“id”值进行比较。

我还注意到您在 Step Event 中有您的代码。这将导致您的请求每秒被调用多次,因此我建议将代码放在 Start、Alarm 或 Key/Mouse Press Event 中进行测试。


推荐阅读