Minecraft Modding“.bindTexture”不起作用
Minecraft Modding ".bindTexture" doesn't work
我在编写我的第一个 Minecraft Mod 时遇到了问题 Mod。
这里是源代码:
Events.java:
public class Events {
@SubscribeEvent
public void onRenderGameOverlay(RenderGameOverlayEvent event) {
if(!event.isCancelable() && event.type == ElementType.EXPERIENCE && !Minecraft.getMinecraft().thePlayer.capabilities.isCreativeMode) {
int posX = event.resolution.getScaledWidth() / 2 + 10;
int posY = event.resolution.getScaledHeight() - 48;
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("tc:textures/gui/thermo-icon.png"));
Minecraft.getMinecraft().ingameGUI.drawTexturedModalRect(posX + 9, posY + 3, 0, 9, 71, 3);
}
}
}
所以,我的问题是在 Minecraft 中它向我展示了这个:
注意红色的椭圆(我用GIMP添加的),里面有一个黑色的矩形(我没有用GIMP添加的)...它太小而且没有纹理...
我遵循了本教程 (https://www.youtube.com/watch?v=oi41BAlRjtE),但仍然无法正常工作...
请问有什么解决办法吗?
更新 - - - - - -
感谢大家的帮助,我知道height = 3像素太小了......但现在我还有一个问题......
中间的浅灰色矩形,应该是
正方形,黑色部分应该是“圆”。
有谁知道比例错误的原因吗?谢谢!
太小了?
您期望的尺寸是多少?
drawTexturedModalRect(posX + 9, posY + 3, 0, 9, 71, 3);
它不是长 71 像素,高 3 像素...正是您提供的吗?这很难说。也许纹理正在工作,但你将它偏移了 9 个像素(当你只绘制它的 3 个像素时),但看起来你使用的 bindTexture 是错误的。它接受从 getTexture 返回的 int。
int i = mc.renderEngine.getTexture("/Items/GUI/mixer.png");
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.renderEngine.bindTexture(i);
有一个很好的维基百科/教程,介绍了您正在做的那种模组,可能会有所帮助:http://www.minecraftforge.net/wiki/Gui_Overlay#Mod_Code
我在编写我的第一个 Minecraft Mod 时遇到了问题 Mod。
这里是源代码:
Events.java:
public class Events {
@SubscribeEvent
public void onRenderGameOverlay(RenderGameOverlayEvent event) {
if(!event.isCancelable() && event.type == ElementType.EXPERIENCE && !Minecraft.getMinecraft().thePlayer.capabilities.isCreativeMode) {
int posX = event.resolution.getScaledWidth() / 2 + 10;
int posY = event.resolution.getScaledHeight() - 48;
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("tc:textures/gui/thermo-icon.png"));
Minecraft.getMinecraft().ingameGUI.drawTexturedModalRect(posX + 9, posY + 3, 0, 9, 71, 3);
}
}
}
所以,我的问题是在 Minecraft 中它向我展示了这个:
注意红色的椭圆(我用GIMP添加的),里面有一个黑色的矩形(我没有用GIMP添加的)...它太小而且没有纹理...
我遵循了本教程 (https://www.youtube.com/watch?v=oi41BAlRjtE),但仍然无法正常工作...
请问有什么解决办法吗?
更新 - - - - - -
感谢大家的帮助,我知道height = 3像素太小了......但现在我还有一个问题......
中间的浅灰色矩形,应该是 正方形,黑色部分应该是“圆”。
有谁知道比例错误的原因吗?谢谢!
太小了?
您期望的尺寸是多少?
drawTexturedModalRect(posX + 9, posY + 3, 0, 9, 71, 3);
它不是长 71 像素,高 3 像素...正是您提供的吗?这很难说。也许纹理正在工作,但你将它偏移了 9 个像素(当你只绘制它的 3 个像素时),但看起来你使用的 bindTexture 是错误的。它接受从 getTexture 返回的 int。
int i = mc.renderEngine.getTexture("/Items/GUI/mixer.png");
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.renderEngine.bindTexture(i);
有一个很好的维基百科/教程,介绍了您正在做的那种模组,可能会有所帮助:http://www.minecraftforge.net/wiki/Gui_Overlay#Mod_Code