Hud отображение.

Версия Minecraft
1.12.2
122
4
6
Доброго времени суток. Работаю сейчас над оверлеем и столкнулся с небольшими трудностями и решил обратится к более опытным кодерам.
1. Отрисовка иконки идет с верху в низ, а нужно наоборот. Довольно много всего перепробовал к сожалению ничего не вышло, иконка начинала не правильно отрисовываться
Java:
if (event.getType() == ElementType.TEXT) {
   mc.renderEngine.bindTexture(icon);
   float oneUnit1 = 30 / mc.player.getMaxHealth();
   int currentHaight1 = (int) (oneUnit1 * mc.player.getHealth());
           
   drawModalRectWithCustomSizedTexture(i , (j - 80), 65, 1, 30, 30, 256, 256); //задний фон
   drawModalRectWithCustomSizedTexture(i, (j - 80), 65, 33, 30, currentHaight1, 256, 256); //передний фон
}
ввв.PNGfdf.PNG
 
Последнее редактирование:
3. Не правильно отрисовывается полоска голода
Java:
if (event.getType() == ElementType.TEXT) {
            mc.renderEngine.bindTexture(icon);
            drawModalRectWithCustomSizedTexture(i , (j - 40), 1, 1, 30, 30, 256, 256);
            if (mc.player.getFoodStats().getFoodLevel() >= 0.5) { //Что бы майн не делил на ноль
                float oneUnit1 = 30 / mc.player.getFoodStats().getFoodLevel();
                int currentHaight1 = (int) (oneUnit1 * mc.player.getFoodStats().getFoodLevel());
                drawModalRectWithCustomSizedTexture(i, (j - 40), 1, 33, 30, currentHaight1, 256, 256);
            }
        }
ввв.PNGdfsg.PNGsdf.PNG
 
Что за странные формулы? Что за магическая 30? Почему делишь на maxHealth?
Должно быть так:
Java:
int maxBarHeight = ...; // Высота (в пикселях) полностью заполненного бара на текстуре
float progress = player.getHealth() / player.getMaxHealth();
int barHeight = progress * maxBarHeight;
И уже barHeight подставлять в drawModalRectWithCustomSizedTexture вместо currentHaight1.
С едой всё аналогично. Только приведи тип к float при делении, а то у тебя будет округляться и работать неправильно.

Отрисовка иконки идет с верху в них, а нужно наоборот
Включи голову)
 
3. Не правильно отрисовывается полоска голода
Java:
if (mc.player.getFoodStats().getFoodLevel() >= 0.5) { //Что бы майн не делил на ноль
                int maxBarHeight = 30; // Высота (в пикселях) полностью заполненного бара на текстуре
                float progress = mc.player.getFoodStats().getFoodLevel() / 20F;
                int barHeight = (int) (progress * maxBarHeight);
                drawModalRectWithCustomSizedTexture(i, (j - 40), 1, 33, 30, barHeight, 256, 256);
            }
Отображение еды.
 
1. Отрисовка иконки идет с верху в низ, а нужно наоборот.
Перепробовал все что знаю и представляю. К сожалению так и не получилось. Кто может подсказать, как решить данный вопрос?
 
Совсем не понимаю почему так.
Java:
if (event.getType() == ElementType.TEXT) {
            mc.renderEngine.bindTexture(icon);
            int maxBarHeight = 30;
            int maxBarR = 33;// Высота (в пикселях) полностью заполненного бара на текстуре
            float progress = mc.player.getHealth() / mc.player.getMaxHealth();
            int barHeight = (int) (progress * maxBarHeight);
            //int barR1 = maxBarHeight - (maxBarHeight - barHeight);
            int barR = maxBarR + (maxBarHeight - barHeight);
            drawModalRectWithCustomSizedTexture(i , (j - 80), 33, 1, 30, 30, 256, 256);
            drawModalRectWithCustomSizedTexture(i, (j - 80), 33, barR, 30, barHeight, 256, 256); //долно быть max pos(33, 33, 30, 30) и min pos(33, 62, 30, 1)
        }
sff.PNGewef.PNG
 

Вложения

  • sff.PNG
    sff.PNG
    17.8 KB · Просмотры: 5
Назад
Сверху