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

GML自定义roomchange函数传参报错:提示仅接受0个参数求助

问题根源分析:自定义roomchange函数报错“不接受0个以上参数”

核心原因:内置函数命名冲突

GameMaker原生提供了一个无参数的roomchange()内置函数,作用是触发房间切换的系统事件。你自定义了同名的带参函数roomchange(dir),但GameMaker会优先调用内置的无参版本——当你传入参数调用roomchange(next_room)时,实际执行的是内置函数,而它不支持传参,因此触发报错。

辅助逻辑问题(额外补充)

就算解决了命名冲突,你的函数逻辑还有个关键问题:room_goto(dir)执行后,当前实例的x/y赋值不会生效。因为房间切换完成后,当前房间的实例会被销毁,新房间的实例会初始化,你需要先把位置信息存在全局变量里,或者设置实例为持久化,再在新房间的实例创建时读取位置赋值。不过这是次要问题,当前报错的核心还是命名冲突。

验证方法

把自定义函数重命名为非内置函数名,比如room_change_with_pos(dir),再调用这个新函数,报错会消失,这能直接验证命名冲突的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:43:20