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

Game Maker修改Windy Woods模板:添加启动页触发报错求助

问题:添加启动页后游戏报错(基于Windy Woods模板)

我是游戏引擎和游戏创作纯新手,正在边学边推进项目,当前基于Windy Woods模板开发功能。想创建一个启动页并设为游戏启动的首个页面,结果出现报错且找不到原因,报错信息如下:

ERROR in action number 1 of Step Event1 for object obj_character_parent: Unable to find instance for object index 24 at gml_Script_check_collision (line 17) - var _left_top = tilemap_get_at_pixel(obj_game_manager.collision_tilemap, bbox_left + _move_x, bbox_top + _move_y);
gml_Script_check_collision (line 17)
gml_Object_obj_character_parent_Step_1 (line 6) - grounded = check_collision(0, 1);

报错截图

问题原因

报错核心是obj_character_parent的Step事件调用check_collision脚本时,obj_game_manager实例还未创建(或不存在),导致脚本访问obj_game_manager.collision_tilemap失败。因为你把启动页设为首个页面,启动场景里大概率没有obj_game_manager,但角色父对象却在这个场景里运行Step事件。

解决方法

  • 清理启动页场景:如果启动页不需要角色,直接删掉启动场景里的obj_character_parent实例,只保留启动页相关的UI、按钮等对象。
  • 给脚本加判断:如果启动页必须保留角色,打开check_collision脚本,在访问obj_game_manager前添加实例存在判断,避免报错:
// 在脚本开头添加判断
if (!instance_exists(obj_game_manager)) {
    return false; // 按逻辑返回合适值,比如角色未接地
}
// 原脚本代码
var _left_top = tilemap_get_at_pixel(obj_game_manager.collision_tilemap, bbox_left + _move_x, bbox_top + _move_y);
// ... 后续原有代码
  • 确认场景切换逻辑:启动页只负责引导,点击“开始”后再切换到包含obj_game_manager和角色的主游戏场景,确保主场景内的对象按正确顺序创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:32:14