我的世界无法放置自定义背景

Minecraft cannot put custom background

我正在制作自定义 minecraft 客户端。为此我想制作一个自定义主菜单,我尝试了代码:

@Override
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
        // draw a image
        mc.getTextureManager().bindTexture(new ResourceLocation("moon/gui/background.jpg"));
        this.drawModalRectWithCustomSizedTexture(0, 0, 0, 0, this.width, this.height, this.width, this.height);
        super.drawScreen(mouseX,mouseY,partialTicks);
    }

然后用 CustomMainMenu(这是我的 Main菜单 Class) 然后我尝试 运行 它,结果出现 2 个粉红色和黑色的框,这意味着 bg.jpg 的背景文件未找到。控制台输出证实了这一点,该输出显示 java.io file not found。我想让它显示我的背景图片,但它没有。

我试过的一些东西:

我的 CustomMainMenu class 的全部代码是:

package me.debug.moon.ui;

import net.minecraft.client.gui.*;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.ResourceLocation;

public class MainMenu extends GuiScreen {
    // create a override drawScreem
    @Override
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
        // draw a image
        mc.getTextureManager().bindTexture(new ResourceLocation("moon/gui/bg.jpg"));
        this.drawModalRectWithCustomSizedTexture(0, 0, 0, 0, this.width, this.height, this.width, this.height);
        super.drawScreen(mouseX,mouseY,partialTicks);
    }

    // create override super initGui
    @Override
    public void initGui() {
        this.buttonList.add(new GuiButton(1, this.width / 2 - 40, this.height / 2 - 40, 200, 20, "Single-Player"));
        this.buttonList.add(new GuiButton(2, this.width / 2 - 15, this.height / 2 - 15, 200, 20, "Multi-Player"));
        this.buttonList.add(new GuiButton(3, this.width / 2 + 10, this.height / 2 + 10, 200, 20, "Settings"));
        this.buttonList.add(new GuiButton(4, this.width / 2 + 40, this.height / 2 + 40, 20, 20, "Exit"));
        super.initGui();
    }

    //create super override actionPerformed
    @Override
    protected void actionPerformed(GuiButton button) {
        switch (button.id) {
            case 1:
                this.mc.displayGuiScreen(new GuiSelectWorld(this));
                break;
            case 2:
                this.mc.displayGuiScreen(new GuiMultiplayer(this));
                break;
            case 3:
                this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
                break;
            case 4:
                mc.shutdown();
                break;
        }
    }
}

我的文件结构是:

你说“找不到文件”。这可能是由多种原因引起的:

  • 文件不在插件中(似乎是你的情况

如何修复:

您应该检查它们是否包装完好。在您的情况下,它们应该在 src/resources 上,但您将它们写在其他地方。所以,将其移动到 src/resources/moon/gui/bg.jpg

  • 未在运行的 jar 中导出

如何修复:

这取决于您在 maven/gradle/something 之间使用的是什么,以及它们的配置。但是默认情况下,src/resources的所有内容都包含在jar中。

  • 没有足够的权限读取文件

如何修复:

你要检查一下你没有权限的原因,加上“读”权限。例如,在 linux 上,它使用 chmod 命令。