Вопрос Анимация в гуи

Начинающий
Статус
Оффлайн
Регистрация
6 Июл 2024
Сообщения
63
Реакции[?]
2
Поинты[?]
1K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

как сделать анимацию открытия клик гуи? я хз просто
 
Juicy
Участник
Статус
Оффлайн
Регистрация
5 Май 2021
Сообщения
655
Реакции[?]
152
Поинты[?]
9K
как сделать анимацию открытия клик гуи? я хз просто
Я точно не знаю как нужно делать это на джаве, но в теории логика точно такая же я думаю(зависит от типа плавности, то есть на какой функции ты ее делаешь), в моем же случае я попытаюсь дать пример на луа на Neverlose, через самый обычный лерп.

Circle animation:
local vars = { }
    vars.screen_size = render.screen_size()

local animation_params = { }
    animation_params.start_position = vector(0, 0)
    animation_params.end_position = vector(vars.screen_size.x, vars.screen_size.y)
    animation_params.start_time = globals.curtime
    animation_params.duration = 5

local circle_params = { }
    circle_params.color = color(255, 255, 255, 255)
    circle_params.radius = 20
    circle_params.start_deg = 0
    circle_params.pct = 1

local function lerp(a, b, t)
    return a + (b - a) * t
end

local function animated_circle()
    local elapsed_time = globals.curtime - animation_params.start_time
    local t = math.min(elapsed_time / animation_params.duration, 1)

    local x = lerp(animation_params.start_position.x, animation_params.end_position.x, t)
    local y = lerp(animation_params.start_position.y, animation_params.end_position.y, t)

    render.circle(vector(x, y), circle_params.color, circle_params.radius, circle_params.start_deg, circle_params.pct)
end

events.render:set(function(penis)
    animated_circle()
end)
update, блять я только что заметил что не анимацию надо сделать, а анимацию открытия, ебануться...
как сразу на все айтемы в твоей гуишке я хуй знает сделать, ну наверное типо буквально так же через лерп ебашишь на прозрачность. (color(red, green, blue, твояпрозрачностьанимированнаячерезлерпатоестьпеременная) просто цифорки и переменные другие.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
2 Апр 2023
Сообщения
23
Реакции[?]
0
Поинты[?]
0
Java:
private Animation animation;

@Override
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
    // если анимка закрытия закончилась, то закрыть гуи
    if(animation != null && animation.getEndPoint() == 1 && animation.isDone())
        super.closeScreen();
    GlStateManager.pushMatrix();
    GlStateManager.translatef(windowWidth / 2, windowHeight / 2, 0);
    GlStateManager.scaled(animation.getOutput(), animation.getOutput(), 1);
    GlStateManager.translatef(-windowWidth / 2f, -windowHeight / 2f, 0);
   
    // Тута отрисовываешь все элементы гуи
   
    GlStateManager.popMatrix();
    super.render(matrixStack, mouseX, mouseY, partialTicks);
}

@Override
protected void init() {
    animation = new EaseInOutQuad(200, 0, 1, Direction.FORWARDS);
    super.init();
}

@Override
public void closeScreen() {
    animation = new EaseInOutQuad(200, 1, 0, Direction.FORWARDS);
    // напишешь тут super.closeScreen() будет горе
}
 
Забаненный
Статус
Оффлайн
Регистрация
16 Окт 2024
Сообщения
76
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Java:
private Animation animation;

@Override
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
    // если анимка закрытия закончилась, то закрыть гуи
    if(animation != null && animation.getEndPoint() == 1 && animation.isDone())
        super.closeScreen();
    GlStateManager.pushMatrix();
    GlStateManager.translatef(windowWidth / 2, windowHeight / 2, 0);
    GlStateManager.scaled(animation.getOutput(), animation.getOutput(), 1);
    GlStateManager.translatef(-windowWidth / 2f, -windowHeight / 2f, 0);
  
    // Тута отрисовываешь все элементы гуи
  
    GlStateManager.popMatrix();
    super.render(matrixStack, mouseX, mouseY, partialTicks);
}

@Override
protected void init() {
    animation = new EaseInOutQuad(200, 0, 1, Direction.FORWARDS);
    super.init();
}

@Override
public void closeScreen() {
    animation = new EaseInOutQuad(200, 1, 0, Direction.FORWARDS);
    // напишешь тут super.closeScreen() будет горе
}
можно для красоты вместо Direction использовать Easing, я его использую выходит красиво
 
Забаненный
Статус
Оффлайн
Регистрация
16 Окт 2024
Сообщения
76
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Скрытое содержимое
хз:
    @Override
    protected void init() {
        animation = animation.animate(1, 0.15f, Easings.QUAD_OUT);
        super.init();
    }

    @Override
    public void closeScreen() {
        super.closeScreen();
        GLFW.glfwSetCursor(Minecraft.getInstance().getMainWindow().getHandle(), Cursors.ARROW);
    }
 
Забаненный
Статус
Оффлайн
Регистрация
16 Окт 2024
Сообщения
76
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу