From b6974bf0431d95b3927c65daba593a404d3d6934 Mon Sep 17 00:00:00 2001 From: Ziyu Date: Sun, 7 Dec 2025 18:56:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DLevelLoader::loadObjectLayer?= =?UTF-8?q?=E4=B8=AD=E4=B8=8D=E7=AC=A6=E5=90=88=E6=A0=87=E5=87=86=E8=AF=AD?= =?UTF-8?q?=E6=B3=95=E7=9A=84=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/engine/scene/level_loader.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/engine/scene/level_loader.cpp b/src/engine/scene/level_loader.cpp index 67e1380..8acb1fe 100644 --- a/src/engine/scene/level_loader.cpp +++ b/src/engine/scene/level_loader.cpp @@ -231,7 +231,12 @@ void LevelLoader::loadObjectLayer(const nlohmann::json& layer_json, Scene& scene // 获取瓦片json信息 1. 必然存在,因为getTileInfoByGid(gid)函数已经顺利执行 // 2. 这里再获取json,实际上检索了两次,未来可以优化 - auto tile_json = getTileJsonByGid(gid); + auto tile_json_opt = getTileJsonByGid(gid); + if (!tile_json_opt) { + spdlog::error("gid为 {} 的瓦片没有对应的 JSON 数据。", gid); + continue; + } + auto& tile_json = tile_json_opt.value(); // 获取碰信息:如果是SOLID类型,则添加物理组件,且图片源矩形区域就是碰撞盒大小 if (tile_info.type == engine::component::TileType::SOLID) {