2013-05-25 62 views
-1

我試圖用這個函數在Minecraft中製作遊戲GUI。 (我正在使用MC 1.5.2僞造)。我的世界fontRenderer.drawString()立即消失

Minecraft.getMinecraft().fontRenderer.drawString(String) 

這裏是我的代碼:

@ForgeSubscribe 
public void onServerChat(ServerChatEvent event) 
{ 
    mcObject.fontRenderer.drawStringWithShadow("Hello WOrld", 4, 4, 0xffFFFFFF); 
    mcObject.ingameGUI.drawRect(2 /*X*/, 2 /*Y*/, 100 /*X1*/, 12 /*Y1*/, 0x80000000 /*COLOUR*/); 
} 

但是當我輸入的聊天消息(只使用該事件進行測試)文本瞬間消失,你幾乎看不到它,肯定不會讀它。

我對僞造modding很陌生。

如何使文本更加永久以及如何再次刪除它(或覆蓋)?

回答

4

onServerChat是斯塔皮膚事件:聊天收到消息時立即停止。

您需要在更新每一幀的事件中繪製GUI。我一直在做OnRenderExperienceBar,它是Minecraft默認GUI的一個元素。以下是使用您的代碼的示例。

@SideOnly(Side.CLIENT) 
@SubscribeEvent(priority = EventPriority.NORMAL) 
public void onRenderExperienceBar(RenderGameOverlayEvent event) { 

mcObject.fontRenderer.drawStringWithShadow("Hello World", 4, 4, 0xffFFFFFF); 
mcObject.ingameGUI.drawRect(2 /*X*/, 2 /*Y*/, 100 /*X1*/, 12 /*Y1*/, 0x80000000 /*COLOUR*/); 

} 
3

我沒有使用Minecraft代碼的經驗,但我會推測,無論你想繪製什麼,只會繪製一幀。這與你所看到的「瞬間消失」行爲是一致的。如果是這種情況,您可以調用每個框架上的方法,直到您想停止繪製。

+0

我想這是正確的,但我仍然無法做到這一點......我想我會玩更多... ... – JensV

-1

我有一個答案,我看着我的世界各具特色的GUI代碼,並發現這一點,它可以幫助你:

this.fontRenderer.drawString("Crafting", 28, 6, 4210752); 
// Args that I think: text, X, Y, color 

,你需要import org.lwjgl.opengl.GL11;

只要你知道,這是從MCP正常的Minecraft但應該工作