2013-05-25 3 views
-1

Я попытался создать игровой GUI в minecraft с помощью этой функции. (Я использую кузницу с MC 1.5.2).Minecraft 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*/); 
} 

Но когда я печатаю сообщение чата (только с помощью этого события для тестирования) текст исчезает мгновенно, и вы можете только видеть его, и, конечно, не читал.

Я новичок в подделке моддинга.

Как сделать текст более постоянным и как его снова удалить (или перезаписать)?

ответ

4

onServerChat является Insta ntaneous event: он срабатывает, когда чат получает сообщение и немедленно останавливается.

Вам нужно будет нарисовать свой графический интерфейс в случае обновления каждого кадра. Я делаю это OnRenderExperienceBar, элемент графического интерфейса пользователя Minecraft. Вот пример использования вашего кода.

@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

Я получил ответ, я посмотрел на Minecraft зачарования кода графического интерфейса, и нашел это, это может помочь вам:

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

и вам нужно import org.lwjgl.opengl.GL11;

Только так вы знаете , это было от MCP в обычном Minecraft, но должны работы

Смежные вопросы