Рендер полоски опыта снизу вверх

Версия Minecraft
1.12.2
124
1
8
Вообщем, хотел сделать худ полоски опыта, чтобы она увеличивалась снизу вверх.
Сделал так:
drawModalRectWithCustomSizedTexture(9, 28, 0,0,32, (int)((double)this.mc.player.experience * 63D),32 , 61);
Это не совсем то что нужно, она увеличивается, но только не снизу вверх, а наоборот, как исправить?
 

ReyMagos

Тег-бомбастер
412
7
121
Это потому что нулевая координата находится в левом верхнем углу, то бишь для того чтобы полоска увеличивалась снизу вверх высоту надо определить как 28 - (int)((double)this.mc.player.experience * 63D) . Только коэффицент 63 сделай поменьше, а то координата уйдёт в минус.
 
7,099
324
1,510
Также можно перед рендером сделать rotate(180) или scale(1, -1, 1)
 

timaxa007

Модератор
5,831
409
672
Место здоровья используй опыт.
 

timaxa007

Модератор
5,831
409
672
Ну, возьми как сделано в ванильном индикаторе полоски заполнения опыта.
Подумать... Постараться...
Java:
int exp = (int)(Minecraft.getMinecraft().player.experience * 50);
Minecraft.getMinecraft().ingameGUI.drawTexturedModalRect(0, 0 + 50 - exp , 0, 50 - exp, 10, exp);
 

ReyMagos

Тег-бомбастер
412
7
121
Попробовал два варианта, не отображалась текстура в обоих случаях
Значит делать как надо - тяжело, лучше вот одну команду введу и всё. Ой, не работает, ну ладно, видимо не судьба.
 
7,099
324
1,510
Попробовал два варианта, не отображалась текстура в обоих случаях
Первый случай не работает по причине
1590343267547.png

А второй потому что
1590343729491.png

Первый случай можно пофиксить добавив translate(w,h,0).
Второй можно пофиксить обратив порядок вершин
~~~
Значит делать как надо
В данном случае нет единственного правильного варианта. Что если ТС хочет отсчитывать y-координату от нижнего края? Смена системы координат - тоже правлиьное решение
 
Последнее редактирование:
Сверху