Как сделать ожидание второго нажатия кнопки imgui

wintreist

Активный
Автор темы
308
71
Версия MoonLoader
.026-beta
Кнопка:
if imgui.Button(u8(Кнопка), imgui.ImVec2(350, 20)) then
    local test_text_buffer = imgui.ImBuffer(256)
    local slider = imgui.ImInt(0)
    imgui.InputText(u8'Первый инпут', test_text_buffer, imgui.ImVec2(175, 20))
    imgui.SameLine()
    imgui.SliderInt(u8'Слайдер', slider, 0, getPlayerMoney(PLAYER_HANDLE))
end
Хочу чтобы когда я первый раз нажал на кнопку выполнился код создания инпута и слайдера, а во второй раз код будет работать с данными из них, и потом закрыть. Но совершенно не понимаю за imgui
 
Решение
я бы хотел, чтобы инпут и слайдер появлялись при клике на кнопку, и при последующем клике на неё выполнялся код и они убирались
Lua:
-- В какую-либо часть кода
SomeElementsShow = false -- Переименуй по своему желанию

-- В отрисовку
if SomeElementsShow then
    local test_text_buffer
    imgui.ImBuffer(256)
    local slider = imgui.ImInt(0)
    imgui.InputText(u8'Первый инпут', test_text_buffer,
    imgui.ImVec2(175, 20))
    imgui.SameLine()
    imgui.SliderInt(u8'Слайдер', slider, 0, getPlayerMoney(PLAYER_HANDLE))
end
if imgui.Button(u8(Кнопка), imgui.ImVec2(350, 20)) then
    if not SomeElementsShow then
        SomeElementsShow = true
    else
        -- code
        SomeElementsShow = false
    end
end

RedHolms

Известный
Проверенный
619
362
Lua:
local test_text_buffer imgui.ImBuffer(256)
local slider = imgui.ImInt(0)
imgui.InputText(u8'Первый инпут', test_text_buffer, imgui.ImVec2(175, 20))
imgui.SameLine()
imgui.SliderInt(u8'Слайдер', slider, 0, getPlayerMoney(PLAYER_HANDLE))
if imgui.Button(u8(Кнопка), imgui.ImVec2(350, 20)) then
  -- code   
end
 

RedHolms

Известный
Проверенный
619
362
я бы хотел, чтобы инпут и слайдер появлялись при клике на кнопку, и при последующем клике на неё выполнялся код и они убирались
Lua:
-- В какую-либо часть кода
SomeElementsShow = false -- Переименуй по своему желанию

-- В отрисовку
if SomeElementsShow then
    local test_text_buffer
    imgui.ImBuffer(256)
    local slider = imgui.ImInt(0)
    imgui.InputText(u8'Первый инпут', test_text_buffer,
    imgui.ImVec2(175, 20))
    imgui.SameLine()
    imgui.SliderInt(u8'Слайдер', slider, 0, getPlayerMoney(PLAYER_HANDLE))
end
if imgui.Button(u8(Кнопка), imgui.ImVec2(350, 20)) then
    if not SomeElementsShow then
        SomeElementsShow = true
    else
        -- code
        SomeElementsShow = false
    end
end
 

RedHolms

Известный
Проверенный
619
362
а у imgui нет что-то вроде раскрывающегося меню? Я подумал может так реализовать, вместо кнопки будет меню раскрываться по нажатию
Да, есть, и называется Combo

Тут уже тести сам
Апи можешь чекнуть в хеадере:
В луа интерфейс должен быть такой же
 

awserver

Участник
55
23
Точнее говоря спойлер, как в blast.hk
И тут все нужные мне инпуты и слайдеры
напиши сам код с анимацией и появляющимся текстом при нажатии на кнопку
исходники анимаций есть в полезных снипеттах