diff --git a/game/docs/modules/stage_rendering.md b/game/docs/modules/stage_rendering.md index 5b6872c..12061e1 100644 --- a/game/docs/modules/stage_rendering.md +++ b/game/docs/modules/stage_rendering.md @@ -33,7 +33,7 @@ UI - 支持 source rect。 - 支持 `.map` tile entry 绘制。 - 支持 tileset 图片缺失时按 tile fallback 色绘制。 -- 资源缺失时回退色块,不阻断场景运行。 +- 资源缺失时先检查 `Asset::exists()`,再回退色块,不触发纹理加载错误日志。 ## 约束 diff --git a/game/src/stage/stage_renderer.cpp b/game/src/stage/stage_renderer.cpp index db9fe39..4b45e68 100644 --- a/game/src/stage/stage_renderer.cpp +++ b/game/src/stage/stage_renderer.cpp @@ -6,6 +6,7 @@ #include #include #include +#include namespace ns_game { @@ -174,6 +175,11 @@ StageRenderer::getTexture(const std::string& texturePath) const { return existing->second; } + if (!frostbite2D::Asset::get().exists(texturePath)) { + textureCache_[texturePath] = nullptr; + return nullptr; + } + frostbite2D::Ptr texture = frostbite2D::Texture::loadFromFile(texturePath); if (texture) {