Fra*_*ora 4 html game-engine godot
我正在使用 Godot 创建一个网页游戏。
为了关闭游戏,我尝试使用“get_tree().quit()”。
如果我在 IDE 上使用它,它就可以工作。当我在我的服务器上尝试它时(导出项目后)它不起作用。
我确信导出设置没问题。
我怎样才能关闭游戏?
并且,如何添加超文本链接(类似于 html`` 标记)?
感谢您的回答,并对我的英语不好表示歉意
在网络上,使用
get_tree().quit()
Run Code Online (Sandbox Code Playgroud)
应该管用。也就是说,它应该停止运行时。游戏将不会继续运行。它不会关闭浏览器选项卡。事实上,浏览器对关闭选项卡的脚本有限制。
注意:确保您使用的是 Godot 3.2.3 或更高版本(请参阅#39604)。我试过了,有效。
您可以使用LinkButton,这是一个看起来像超链接的按钮。并且您希望将其"pressed"信号连接到您使用的脚本OS.shell_open,例如:
OS.shell_open("https://example.com")
Run Code Online (Sandbox Code Playgroud)
注意:这会在 Web 导出中产生一个新选项卡。在桌面上它会打开默认浏览器。
既然您询问有关关闭游戏和建立链接的问题,我冒昧地猜测您真正想要的是导航(离开游戏并转到另一个页面)。
在 Web 导出中,您可以访问浏览器的 JavaScript 运行时来执行此操作。
在 Godot 3 中使用JavaScript.eval:
JavaScript.eval("window.location.href='https://example.com'")
Run Code Online (Sandbox Code Playgroud)
在 Godot 4 中改用JavaScriptBridge.eval:
JavaScriptBridge.eval("window.location.href='https://example.com'")
Run Code Online (Sandbox Code Playgroud)
您可以用来OS.get_name识别平台。
例如,您可以这样做:
戈多3
if OS.get_name() == "HTML5":
JavaScript.eval("window.location.href='https://example.com'")
else:
OS.shell_open("https://example.com")
Run Code Online (Sandbox Code Playgroud)
戈多4
if OS.get_name() == "Web":
JavaScriptBridge.eval("window.location.href='https://example.com'")
else:
OS.shell_open("https://example.com")
Run Code Online (Sandbox Code Playgroud)
如果这是一个 Web 构建,它将导航浏览器,但如果不是,它将尝试打开默认浏览器。