You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Godot平台游戏开发:register_player函数引发connect报错求助

问题解决:Godot中connect函数参数顺序错误导致崩溃

错误提示Invalid type in function 'connect'... Cannot convert argument 4 from int to Array的核心原因是你搞反了connect方法的参数顺序。

在Godot中,connect方法的标准参数结构是:

signal.connect(目标节点, 回调方法名, [绑定参数数组], 连接标志)

你当前代码里把CONNECT_DEFERRED这个连接标志(整数类型)放在了第四个参数的位置,但这个位置原本应该是绑定参数的数组。正确的写法应该把CONNECT_DEFERRED移到第五个参数,第四个参数传空数组[](如果不需要绑定参数),或者直接省略第四个参数(默认是空数组)。

修复后的register_player函数代码:

func register_player(player):
    currentPlayerNode = player
    # 写法1:显式传空数组作为绑定参数,第五个放标志
    currentPlayerNode.connect("died", self, "on_player_died", [], CONNECT_DEFERRED)
    # 写法2:省略绑定参数数组,直接传标志(因为第四个参数默认是空数组)
    # currentPlayerNode.connect("died", self, "on_player_died", CONNECT_DEFERRED)

另外补充一个潜在问题:在create_player函数中,当你调用add_child_below_node(currentPlayerNode, playerInstance)时,如果currentPlayerNode已经被queue_free(),可能会出现异常。可以改成直接将新玩家节点添加到当前节点,并设置出生位置:

func create_player():
    var playerInstance = playerScene.instance()
    playerInstance.global_position = spawnPosition
    add_child(playerInstance)
    register_player(playerInstance)

这样调整后,死亡重生的逻辑就能正常运行了。

内容的提问来源于stack exchange,提问作者Bradley Wood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:42:54