-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Бюджет гайда-бутылка пива , и пузо ежова под рукой.
НЕ ПИЗДИТЬ НОГАМИ!
Так-с , нам нужно создать переменные с цветами , которые будем юзать в нашем переливании цветов-у меня это зеленый,красный,желтый.У вас же они могут быть другие,по вашему вкусу.
Далее мы создаем оператор,который вычисляет процентное значение здоровья путем деления текущего здоровья (hp) на максимальное здоровье (maxHp)
Также создаем переменную currentColor, которая будет использоваться для хранения цвета в зависимости от процентного значения здоровья.
Далее создаем условное выражение, которое выбирает цвет в зависимости от процентного значения здоровья (
Если
Если
Вот что в итоге вышло-
Я думаю не стоит говорить,что это мы пихаем в метод render,перед рендером самой полоски ХП
Далее у нас осталось самое простое-зарендерить это все.
Все что нужно - это заменить значение цвета с style.getFirstColor().getRGB(), style.getSecondColor().getRGB() на наш currentColor.getRGB
У меня вышло так -
Вот что у нас вышло -
Всем спасибо кто был,буду рад клоунам и попкорну.
НЕ ПИЗДИТЬ НОГАМИ!
Так-с , нам нужно создать переменные с цветами , которые будем юзать в нашем переливании цветов-у меня это зеленый,красный,желтый.У вас же они могут быть другие,по вашему вкусу.
Java:
// Градиентный переход цвета полоски здоровья
Color greenColor = new Color(0, 153, 76);
Color yellowColor = new Color(204, 204, 0);
Color redColor = new Color(204, 0, 0);
Также создаем переменную currentColor, которая будет использоваться для хранения цвета в зависимости от процентного значения здоровья.
Java:
float healthPercentage = hp / maxHp;
Color currentColor;
healthPercentage
). Если
healthPercentage
больше или равно 0.5, то это означает, что здоровье более чем половина максимального значения. В этом случае используется переменная ratio
, которая вычисляется как (healthPercentage - 0.5) * 2
, чтобы преобразовать диапазон значений в интервал от 0 до 1. Затем функция blendColors()
вызывается с использованием yellowColor
и greenColor
, а также ratio
для плавного смешивания этих двух цветов в пропорции, определенной значением ratio
.Если
healthPercentage
меньше 0.5, то это означает, что здоровье менее чем половина максимального значения. В этом случае используется другая переменная ratio
, которая вычисляется как healthPercentage * 2
, чтобы также преобразовать диапазон значений в интервал от 0 до 1. Затем снова вызывается blendColors()
, но уже с использованием redColor
и yellowColor
, и значение ratio
для плавного смешивания цветов.
Java:
if (healthPercentage >= 0.5f) {
float ratio = (healthPercentage - 0.5f) * 2;
currentColor = blendColors(yellowColor, greenColor, ratio);
} else {
float ratio = healthPercentage * 2;
currentColor = blendColors(redColor, yellowColor, ratio);
}
Java:
Color greenColor = new Color(0, 153, 76);
Color yellowColor = new Color(204, 204, 0);
Color redColor = new Color(204, 0, 0);
float healthPercentage = hp / maxHp;
Color currentColor;
if (healthPercentage >= 0.5f) {
float ratio = (healthPercentage - 0.5f) * 2;
currentColor = blendColors(yellowColor, greenColor, ratio);
} else {
float ratio = healthPercentage * 2;
currentColor = blendColors(redColor, yellowColor, ratio);
}
Далее у нас осталось самое простое-зарендерить это все.
Все что нужно - это заменить значение цвета с style.getFirstColor().getRGB(), style.getSecondColor().getRGB() на наш currentColor.getRGB
У меня вышло так -
Java:
DisplayUtils.drawRoundedRect(posX + headSize + spacing + spacing, posY + height - spacing * 2.0f - 2.0f, (width - 42.0f) * this.healthAnimation, 7.0f, new Vector4f(4.0f, 4.0f, 4.0f, 4.0f), currentColor.getRGB());
DisplayUtils.drawRoundedRect(posX + headSize + spacing + spacing, posY + height - spacing * 2.0f - 2.0f, (width - 42.0f) * this.healthAnimation, 7.0f, new Vector4f(4.0f, 4.0f, 4.0f, 4.0f),currentColor.getRGB());
DisplayUtils.drawRoundedRect(posX + headSize + spacing + spacing, posY + height - spacing * 2.0f - 2.0f, (width - 42.0f) * this.absorptionAnimation, 7.0f, new Vector4f(4.0f, 4.0f, 4.0f, 4.0f), currentColor.getRGB());
Пожалуйста, авторизуйтесь для просмотра ссылки.
Всем спасибо кто был,буду рад клоунам и попкорну.