我在下面的代码行中隔离了该问题:
NY: phrase state
one_two NY
two_one NY
three NY
我对为什么要制作XP栏,健康栏,食物栏和装甲栏感到非常困惑。这是我的代码的一部分:
Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(etc)
有效地,引起伪像的行是// the main code
public void postInit(FMLPostInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(new MyMod());
}
// MyMod class
public uiCreator;
public MyMod() {
uiCreator = new UICreator();
}
@SubscribeEvent
public void onGui(RenderGameOverlayEvent event) {
uiCreator.Create();
}
// UICreator class
public void Create() {
GlStateManager.scale(1.5, 1.5, 1.5);
Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow("MyMod", 2, 2, 0xffffff);
GlStateManager.scale(1 / 1.5, 1 / 1.5, 1 / 1.5);
}
。我不明白为什么。我敢肯定这是这一行,因为在我注释掉这行之前,删除/注释掉代码的任何其他部分都不会修复工件。我对为什么发生这种情况感到非常困惑。如果有人有任何见识,我将不胜感激
答案 0 :(得分:0)
问题如下:
当您尝试绘制String时,它将用文本纹理替换纹理。因此,之后渲染的所有内容看起来都像文本,而不是适当的图标,因为纹理已在“内存”中被替换。为了避免这种情况,请使用RenderGameOverlayEvent.Post
并检查event
是否获得TEXT渲染的类型。