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

Minecraft自定义客户端开发 主菜单无法加载自定义背景问题求助

问题根因

你遇到的粉黑格子报错本质是Minecraft的纹理加载器找不到对应路径的资源文件,核心问题出在资源存放路径不匹配ResourceLocation的查找规则,其次是代码绘制逻辑缺少必要的OpenGL状态设置。

具体解决步骤

  1. 修正资源存放路径
    Minecraft的ResourceLocation会默认从项目src/main/resources/assets/[命名空间]/目录下查找资源,你写的moon/gui/bg.jpg对应的正确存放路径为:
src/main/resources/assets/moon/gui/background.png

注意:

  • 必须先创建assets目录,再在下面创建和你命名空间同名的moon文件夹
  • Minecraft对JPG格式的纹理支持兼容性较差,建议将背景图转成PNG格式使用,避免解码失败
  1. 优化主菜单绘制代码
    修改drawScreen方法,补充必要的OpenGL状态设置,同时改用更规范的双参数ResourceLocation构造方法,减少路径写错的概率:
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
    // 开启纹理混合,避免背景透明度显示异常
    GlStateManager.enableBlend();
    GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
    // 第一个参数为命名空间,对应assets下的moon文件夹,第二个参数为资源相对路径
    mc.getTextureManager().bindTexture(new ResourceLocation("moon", "gui/background.png"));
    this.drawModalRectWithCustomSizedTexture(0, 0, 0, 0, this.width, this.height, this.width, this.height);
    // 用完关闭混合,避免影响后续组件绘制
    GlStateManager.disableBlend();
    super.drawScreen(mouseX, mouseY, partialTicks);
}
  1. 检查构建配置并清理缓存
  • 确认项目build.gradle中的processResources配置没有排除png格式文件,默认的Forge/Fabric项目配置都会自动打包resources下的所有资源文件
  • 重新构建前先执行clean任务,删除旧的编译缓存,避免资源没有更新到最终打包的jar里

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:45:09