Как отобразить текст на экране?

Версия Minecraft
1.7.10
1,374
113
241
Дело деликатное, вроде всё рендерится, но не отображается. Рендер ниже, с lwgl не знаю.

Java:
@SubscribeEvent
    public void render(RenderGameOverlayEvent.Text.Post event) {
    
        switch(event.type) {
        case TEXT:{
            GL11.glColor4f(2.0F, 2.0F, 2.0F, 2.0F);
            int posX = event.resolution.getScaledWidth() + 200;
            int posY = event.resolution.getScaledHeight();
            if(noise == 3)
                mc.ingameGUI.drawString(mc.fontRenderer, StatCollector.translateToLocal("noise"), posX, posY, 0xFFFFFF);
            else if(noise == 1)
                mc.ingameGUI.drawString(mc.fontRenderer, StatCollector.translateToLocal("smallNoise"), posX, posY, 0xFFFFFF);
            else if(noise == 0)
                mc.ingameGUI.drawString(mc.fontRenderer, StatCollector.translateToLocal("notNoise"), posX, posY, 0xFFFFFF);
            else if(noise <= 4)
                mc.ingameGUI.drawString(mc.fontRenderer, StatCollector.translateToLocal("veryNoise"), posX, posY, 0xFFFFFF);
            break;
        }
        default:break;
        }
    }

Прошу помощи от знающих людей. Код со старых тем можете не кидать, ибо нерабочий.
 
Решение
проблема всё ещё не решена.
public static void preLoad(FMLPreInitializationEvent e) {
Тот код который ты кидал, для метода preLoad нету на нём нету аннотации "@Mod.EventHandler".
---
А так-же ты ни где не используешь "proxy.Init()", это типа чтобы клиентский эвенты зарегистрировать.

timaxa007

Модератор
5,831
409
672
event.resolution.getScaledWidth()
event.resolution.getScaledHeight()
Это самые крайние положение и ещё плюс "+ 200", тем более дальше.
Тебе нужно типа:
Java:
int posX = event.resolution.getScaledWidth() / 2;
int posY = event.resolution.getScaledHeight() - 10;
---
Ну или как-то:
Java:
String name = StatCollector.translateToLocal("break_leg");
mc.fontRenderer.drawStringWithShadow(name, event.resolution.getScaledWidth() - mc.fontRenderer.getStringWidth(name) - 2, 20, 0xFFFFFF);
 
355
2
17
Java:
    public void render(RenderGameOverlayEvent.Pre event)
    {
        if (event.type == RenderGameOverlayEvent.ElementType.CHAT)
        {

            Minecraft mc = Minecraft.getMinecraft();
            int scaledWidth = event.resolution.getScaledWidth() / 2;
            int scaledHeight = event.resolution.getScaledHeight() / 2;

            String text = "Text";

            mc.fontRenderer.drawString(text, scaledWidth - mc.fontRenderer.getStringWidth(text) / 2, scaledHeight, 0xFFFFFFFF);
        }
    }
 
1,374
113
241
А что ты не догадаешься что ли ? Ну оке для тупых поправлю.
Логично вполне вставлять Post, не указав изначальный путь. То есть, по твоему коду видно, что ты берешь РенрдерГеймОверлей в каком то Пост, а не наоборот.
@Override, в КлиентПрокси закинуть?

@Override, в КлиентПрокси закинуть?
 
929
30
66
Логично вполне вставлять Post, не указав изначальный путь. То есть, по твоему коду видно, что ты берешь РенрдерГеймОверлей в каком то Пост, а не наоборот.
А через , что ещё ты можешь рисовать текст ?
 
199
1
17
@Kraken, ты про что? p.s. Что такое прокси я знаю, но смысл в нём на 1.7.10?
Эм.... Регистрировать обязательно, то, что ты создашь класс и туда закинешь код который добавляет текст на экране и запустишь майн ничего не изменит, евент надо регать!
 
929
30
66
Ты сейчас серьезно ? Твой клиент Proxy
Java:
public class ClientProxy extends CommonProxy
{ 
   public void preInit()
   {
    
     super.preInit();
   }

   public void Init()
   {
     super.Init();
    MinecraftForge.EVENT_BUS.register(new Название класса());

   }
Ищи у себя эту строку и добавляй MinecraftForge.EVENT_BUS.register(new Название класса());
 
Сверху