Кастомные кнопки

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

Tema05

Известный
Автор темы
1,468
434
Версия MoonLoader
.026-beta
Как можно сделать кнопки с картинками, круглые кнопки, цветные?
 
  • Нравится
Реакции: Vintik
Решение
Но как картинку расположить на кнопку вместе с текстом? Так-же картинка растягивается на всю кнопку.
Пример:
88ads9r.jpg

Сделал вот так:
Lua:
local image = renderLoadTextureFromFile("moonloader\\config\\1.png")
renderDrawTexture(image, 200, 200, 18, 18, 0.0, 0xFFFFFFFF)
Но картинка находится под окном imgui и она статична
В твоем примере это не картинка, это библиотека FontAwesome5 ищи ее в теме по имгуи или забей по поиску на бх. А в твоем коде ты рендеришь стандартными методами мунлоудера

Carrentine

Потрачен
569
463
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
local ImGui = require("imgui")

ImGui.ImageButton(tImage, ImGui.ImVec2(100, 150)) -- с картинкой
ImGui.CustomButton('TestButton', mainColor, colorHovered, colorActive, size) -- цветная
-- Многое другое есть тут: https://blast.hk/threads/27544/

function ImGui.CustomButton(name, color, colorHovered, colorActive, size)
    local clr = ImGui.Col
    ImGui.PushStyleColor(clr.Button, color)
    ImGui.PushStyleColor(clr.ButtonHovered, colorHovered)
    ImGui.PushStyleColor(clr.ButtonActive, colorActive)
    if not size then size = ImGui.ImVec2(0, 0) end
    local result = ImGui.Button(name, size)
    imgui.PopStyleColor(3)
    return result
end
 
  • Нравится
Реакции: Vintik

Tema05

Известный
Автор темы
1,468
434
Чёт не работает
Lua:
if imgui.ImageButton("moonloader\\config\\1.png", imgui.ImVec2(250, 25)) then
--код
end
[ML] (error) SMIHelper.lua: C:\Games\GTA San Andreas\moonloader\SMIHelper.lua:931: stack index 1, expected userdata, received string: (bad argument into 'bool(void*, const structImVec2&, sol::optional<ImVec2 const *>, sol::optional<ImVec2 const *>, sol::optional<int>, sol::optional<ImVec4 const *>, sol::optional<ImVec4 const *>)')
stack traceback:
[C]: in function 'ImageButton'
C:\Games\GTA San Andreas\moonloader\SMIHelper.lua:931: in function 'OnDrawFrame'
C:\Games\GTA San Andreas\moonloader\lib\imgui.lua:1378: in function <C:\Games\GTA San Andreas\moonloader\lib\imgui.lua:1367>
[ML] (error) SMIHelper.lua: Script died due to an error. (15DBAD54)
И можно как-то совместить картинку и текст?
Пример:
88ads9r.jpg
 
Последнее редактирование:

Quasper

Известный
835
354
Чёт не работает
Lua:
if imgui.ImageButton("moonloader\\config\\1.png", imgui.ImVec2(250, 25)) then
--код
end
[ML] (error) SMIHelper.lua: C:\Games\GTA San Andreas\moonloader\SMIHelper.lua:931: stack index 1, expected userdata, received string: (bad argument into 'bool(void*, const structImVec2&, sol::optional<ImVec2 const *>, sol::optional<ImVec2 const *>, sol::optional<int>, sol::optional<ImVec4 const *>, sol::optional<ImVec4 const *>)')
stack traceback:
[C]: in function 'ImageButton'
C:\Games\GTA San Andreas\moonloader\SMIHelper.lua:931: in function 'OnDrawFrame'
C:\Games\GTA San Andreas\moonloader\lib\imgui.lua:1378: in function <C:\Games\GTA San Andreas\moonloader\lib\imgui.lua:1367>
[ML] (error) SMIHelper.lua: Script died due to an error. (15DBAD54)
И можно как-то совместить картинку и текст?
Пример:
88ads9r.jpg
потому что это так не работает, нужно сначала загрузить картинку(где то в начале скрипта)

Lua:
local imgui = require'imgui'
local image = imgui.CreateTextureFromFile("тут путь к твоей картинке")

--OnDrawFrame()
imgui.ImageButton(image, imgui.ImVec2(250, 25))
Крашит
Lua:
local image = imgui.CreateTextureFromFile("moonloader\\config\\1.png")
renderDrawTexture(image, sw / 2, sh / 2, 150, 150, 0.0, 0xFF1166AA)
а вот для обычного рендера картинка загружается по другому
Lua:
image = renderLoadTextureFromFile("путь к файлу")
 
Последнее редактирование:
  • Нравится
Реакции: Vintik, Tema05 и AnWu

Tema05

Известный
Автор темы
1,468
434
потому что это так не работает, нужно сначала загрузить картинку(где то в начале скрипта)

Lua:
local imgui = require'imgui'
local image = imgui.CreateTextureFromFile("тут путь к твоей картинке")

--OnDrawFrame()
imgui.ImageButton(image, imgui.ImVec2(250, 25))

а вот для обычного рендера картинка загружается по другому
Lua:
image = renderLoadTextureFromFile("путь к файлу")
Но как картинку расположить на кнопку вместе с текстом? Так-же картинка растягивается на всю кнопку.
Пример:
88ads9r.jpg

Сделал вот так:
Lua:
local image = renderLoadTextureFromFile("moonloader\\config\\1.png")
renderDrawTexture(image, 200, 200, 18, 18, 0.0, 0xFFFFFFFF)
Но картинка находится под окном imgui и она статична
 
Последнее редактирование:

Quasper

Известный
835
354
Но как картинку расположить на кнопку вместе с текстом? Так-же картинка растягивается на всю кнопку.
Пример:
88ads9r.jpg

Сделал вот так:
Lua:
local image = renderLoadTextureFromFile("moonloader\\config\\1.png")
renderDrawTexture(image, 200, 200, 18, 18, 0.0, 0xFFFFFFFF)
Но картинка находится под окном imgui и она статична
В твоем примере это не картинка, это библиотека FontAwesome5 ищи ее в теме по имгуи или забей по поиску на бх. А в твоем коде ты рендеришь стандартными методами мунлоудера
 
  • Нравится
Реакции: Vintik

Tema05

Известный
Автор темы
1,468
434
В твоем примере это не картинка, это библиотека FontAwesome5 ищи ее в теме по имгуи или забей по поиску на бх. А в твоем коде ты рендеришь стандартными методами мунлоудера
Спасибо ещё б круглые кнопки узнать как делать вообще идеально будет.
 
  • Нравится
Реакции: Vintik

Tema05

Известный
Автор темы
1,468
434
Обьясни подробнее
Чтобы сделать круглую кнопку нужно создать квадратную и потом закруглить края
Lua:
imgui.PushStyleVar(imgui.StyleVar.FrameRounding, 8)
--кнопка
imgui.PopStyleVar()
Для кнопки 20 на 20 закругление 8 думаю сделает её круглой, можешь поэкспериментировать.
Таким образом можно закруглить почти все элементы imgui.
 
  • Нравится
Реакции: Vintik

Vollar

Новичок
9
2
Чтобы сделать круглую кнопку нужно создать квадратную и потом закруглить края
Lua:
imgui.PushStyleVar(imgui.StyleVar.FrameRounding, 8)
--кнопка
imgui.PopStyleVar()
Для кнопки 20 на 20 закругление 8 думаю сделает её круглой, можешь поэкспериментировать.
Таким образом можно закруглить почти все элементы imgui.
крашит, помоги пж
 
Статус
В этой теме нельзя размещать новые ответы.