getCursorPos() и открытие окна на ПКМ

biscuitt

Известный
Автор темы
185
14
Версия MoonLoader
.027.0-preview
есть код, где я задаю положение окну:
Lua:
    local cursx, cursy = getCursorPos()
    imgui.SetNextWindowPos(imgui.ImVec2(cursx, cursy), imgui.Cond.Always)
а окно у меня появляется при нажатии на ПКМ:
Lua:
if imgui.IsMouseClicked(1) then
    contextmenu.switch()
end
и когда оно открывается, то оно двигается за курсором, куда бы я его не переместил.
вопрос заключается в следующем: как открыть это меню на ПКМ в том месте, где собственно было произведено нажатие на ПКМ. Чтобы оно не двигалось за курсором.
 

Liquit

Активный
277
91
есть код, где я задаю положение окну:
Lua:
    local cursx, cursy = getCursorPos()
    imgui.SetNextWindowPos(imgui.ImVec2(cursx, cursy), imgui.Cond.Always)
а окно у меня появляется при нажатии на ПКМ:
Lua:
if imgui.IsMouseClicked(1) then
    contextmenu.switch()
end
и когда оно открывается, то оно двигается за курсором, куда бы я его не переместил.
вопрос заключается в следующем: как открыть это меню на ПКМ в том месте, где собственно было произведено нажатие на ПКМ. Чтобы оно не двигалось за курсором.
В imgui.SetNextWindowPos() добавить флаг imgui.Cond.FirstUseEver
 

Liquit

Активный
277
91
тогда открыв его повторно, оно будет появляться в том месте, где оно открылось первый раз
Тогда добавь в тот иф елсе, и там mx, my присваивай nil, а в начале того ифа, добавь ещё один,
Lua:
if mx ~= nil and my ~= nil then
    mx, my = getCursorPos()
end
 
  • Нравится
Реакции: biscuitt