Как я могу визуализировать текст с непрозрачностью 50% с помощью drawStringWithShadow() в Minecraft 1.7.10?JAVA

Программисты JAVA общаются здесь
Anonymous
Как я могу визуализировать текст с непрозрачностью 50% с помощью drawStringWithShadow() в Minecraft 1.7.10?

Сообщение Anonymous »

Я разрабатываю дополнительный мод, который вводит некоторые специальные мечи, отслеживающие серию убийств. Я хочу нарисовать на экране текст, который исчезнет через несколько секунд. Я могу заставить текст исчезнуть через несколько секунд, но не плавно. Сейчас я проверяю непрозрачность, чтобы выяснить это, прежде чем повторно реализовывать таймер.
Я экспериментировал с рендерингом текста на разных альфа-каналах и заметил кое-что странное в методе drawStringWithShadow( в Minecraft). ) функция: она неправильно обрабатывает альфы. Я визуализирую текст по адресу 0x80FFFFFF, что должно сделать его белым при непрозрачности 50%, верно? Но по какой-то причине только несколько пикселей в отображаемой строке затемняются.
Вот снимок экрана моей проблемы:
Изображение HUD Killstreak с проблемой непрозрачности
Крупный план предыдущего изображения
Может кто-нибудь помочь мне понять, как визуализировать этот текст с непрозрачностью 50 %? Это мой код:

Код: Выделить всё

private static void renderStreakNum(Minecraft mc, int screenWidth, int screenHeight) {
String streakText = "" + streakNum;
int textWidth = mc.fontRenderer.getStringWidth(streakText);
int textX = (screenWidth - textWidth + 400) / 2;
int textY = (screenHeight - 80) / 2;

GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glScalef(fscale, fscale, fscale);
mc.fontRenderer.drawStringWithShadow(streakText, textX / fscale, textY / fscale, 0x80FFFFFF);
GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
}
Я попробовал ввести 0x80FFFFFF в качестве аргумента цвета drawStringWithShadow() и drawString(). Ни то, ни другое не сработало. Я также попытался настроить аргументы GL11.Color4(), чтобы они отображались с непрозрачностью 50%. Это тоже не сработало.

Подробнее здесь: https://stackoverflow.com/questions/790 ... inecraft-1

Вернуться в «JAVA»