[Imgui] Как сделать чтоб функия воспоизводилась только при включеном чек боксе

Статус
В этой теме нельзя размещать новые ответы.

Kaktusenok

Новичок
Автор темы
1
0
Версия MoonLoader
.026-beta
Всем привет,я начал изучать язык Lua
И столкунулся с проблемой что функция чек бокса выполняется и при в включении и при выключении
Можно ли как то сделать чтоб она воспроизводилась только на включение?
 
Решение
Чекбокс это типа функция отрицания булевой переменной. Если ты хочешь только на активацию то типа
local per = imgui.ImBool(false)
Lua:
if not per.v then
imgui.Checkbox("##Peremennaya", per)
end
тип если ты активируешь её - то бокс пропадёт и деактивировать уже нельзя
если per.v будет true то чекбокс не нарисуется

Lua:
local box = imgui.ImBool(false)

--что бы действия выполнялись постоянно при активном чекбоксе
imgui.CheckBox('Checkbox', box)
if box.v then
    --тут твой код который будет постоянно выполняться при активном чекбоксе
end


--что бы код воспроизвёлся один раз при включении чекбокса
if imgui.CheckBox('Checkbox', box) then
    if box.v then
        --тут код который воспроизведётся  единожды при включении чекбокса...

T1cKz

Известный
595
245
Чекбокс это типа функция отрицания булевой переменной. Если ты хочешь только на активацию то типа
local per = imgui.ImBool(false)
Lua:
if not per.v then 
imgui.Checkbox("##Peremennaya", per)
end
тип если ты активируешь её - то бокс пропадёт и деактивировать уже нельзя
 

Quasper

Известный
835
354
Чекбокс это типа функция отрицания булевой переменной. Если ты хочешь только на активацию то типа
local per = imgui.ImBool(false)
Lua:
if not per.v then
imgui.Checkbox("##Peremennaya", per)
end
тип если ты активируешь её - то бокс пропадёт и деактивировать уже нельзя
если per.v будет true то чекбокс не нарисуется

Lua:
local box = imgui.ImBool(false)

--что бы действия выполнялись постоянно при активном чекбоксе
imgui.CheckBox('Checkbox', box)
if box.v then
    --тут твой код который будет постоянно выполняться при активном чекбоксе
end


--что бы код воспроизвёлся один раз при включении чекбокса
if imgui.CheckBox('Checkbox', box) then
    if box.v then
        --тут код который воспроизведётся  единожды при включении чекбокса
    end
end
 
  • Нравится
Реакции: accord- и Vintik

T1cKz

Известный
595
245
если per.v будет true то чекбокс не нарисуется

Lua:
local box = imgui.ImBool(false)

--что бы действия выполнялись постоянно при активном чекбоксе
imgui.CheckBox('Checkbox', box)
if box.v then
    --тут твой код который будет постоянно выполняться при активном чекбоксе
end


--что бы код воспроизвёлся один раз при включении чекбокса
if imgui.CheckBox('Checkbox', box) then
    if box.v then
        --тут код который воспроизведётся  единожды при включении чекбокса
    end
end
Я тоже сначала так хотел, но для этого нужно 2 переменных
1 box.v
2 та которую ты будешь юзать непосредственно в скрипте, ибо checkbox ты отрубишь на false как нех петь, даже если в false ты укажешь "вернись на тру" код успеет увидеть что она была false.
Крч зная как тестируют юзеры, лучше скрыть это вообще
 

Quasper

Известный
835
354
Я тоже сначала так хотел, но для этого нужно 2 переменных
1 box.v
2 та которую ты будешь юзать непосредственно в скрипте, ибо checkbox ты отрубишь на false как нех петь, даже если в false ты укажешь "вернись на тру" код успеет увидеть что она была false.
Крч зная как тестируют юзеры, лучше скрыть это вообще
не совсем тебя понял, вполне достаточно одного box.v
 
Статус
В этой теме нельзя размещать новые ответы.