我的世界无法放置自定义背景
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。我想让它显示我的背景图片,但它没有。
我试过的一些东西:
- 重新下载java
- 更改背景图片
- 将背景图片包从 MOON.gui 更改为 moon.gui 和 moon 然后回到 moon.gui
- 在制作 discord server.
的 Minecraft 客户端中寻求帮助
我的 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 命令。
我正在制作自定义 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。我想让它显示我的背景图片,但它没有。
我试过的一些东西:
- 重新下载java
- 更改背景图片
- 将背景图片包从 MOON.gui 更改为 moon.gui 和 moon 然后回到 moon.gui
- 在制作 discord server. 的 Minecraft 客户端中寻求帮助
我的 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 命令。