- Версия MoonLoader
- .027.0-preview
mimgui-basic-example.lua:
local imgui_example = { -- 7
show = false,
show_demo_window = new.bool(),
show_another_window = new.bool(),
f = new.float(0.0),
counter = new.int(0),
clear_color = new.float[3](0.45, 0.55, 0.60)
} -- 14
Вот такой незамысловатый код находится в примере, но единственное упоминание new я заметил лишь в init.lua и там запутался (у меня слабые познания Lua).
В общем, вопрос такой: как это все работает?
Затем:
mimgui-basic-example.lua:
-- 3. Show another simple window.
if imgui_example.show_another_window[0] then
imgui.Begin("Another Window", imgui_example.show_another_window) -- ...
imgui.Text("Hello from another window!")
if imgui.Button("Close Me") then
imgui_example.show_another_window[0] = false
end
imgui.End()
end
Но больше всего меня прям выбешивает [0]. Что это вообще такое? Почему в обычных ситуациях (не касающихся mimgui) используется [0], а в касательных mimgui уже без этого?
Что будет, если поставить [1]? [Можно было бы по старинке пройтись debug-ом, "поломать" программу для изучения ее поведения, но зачем?]
mimgui-basic-example.lua:
if imgui.Button("Button") then -- Buttons return true when clicked (most widgets return true when edited/activated)
imgui_example.counter[0] = imgui_example.counter[0] + 1
end
imgui.SameLine()
imgui.Text("counter = %g", imgui_example.counter[0])
Что вообще такое new . (ctype), где потом идет обращение через [0]?
P.S. Работа авторов действительно хороша, но я такой профан, что уже сутки ничего догнать не могу. И даже больше, чем сутки и чем профан...
Последнее редактирование: