Yue Posted September 6 Posted September 6 The command when put in an event or in a main loop crashes the application. It is to change the size of the Ui in real time. elseif ev.source == _cmbBixUIScale then UpdateApplyButton() ui:SetScale(1.25) --<<< crash app. elseif ev.source == _tabOptions then Quote Murphy's Law: We don't fix bugs, we document them as features. – Murphy Games
Josh Posted September 7 Posted September 7 Here is an example that shows it working: -- Get the displays local displays = GetDisplays() -- Create window local window = CreateWindow("Ultra Engine", 0, 0, 800, 600, displays[1], WINDOW_TITLEBAR | WINDOW_RESIZABLE) window:SetMinSize(640, 480) -- Create user interface local ui = CreateInterface(window) -- Create widgets local sz = ui.background:ClientSize() local leftpanel = CreatePanel(10, 10, 200, sz.y - 20, ui.background) leftpanel:SetLayout(1, 0, 1, 1) leftpanel:SetColor(0, 0, 0, 1) local rightpanel = CreatePanel(sz.x - 10 - 200, 10, 200, sz.y - 20, ui.background) rightpanel:SetLayout(0, 1, 1, 1) rightpanel:SetColor(0, 0, 0, 1) local mainpanel = CreatePanel(10 + 200 + 10, 10, sz.x - 10 * 4 - 200 * 2, sz.y - 10 * 3 - 100, ui.background) mainpanel:SetLayout(1, 1, 1, 1) mainpanel:SetColor(0, 0, 0, 1) local bottompanel = CreatePanel(10 + 200 + 10, sz.y - 10 - 100, sz.x - 10 * 4 - 200 * 2, 100, ui.background) bottompanel:SetLayout(1, 1, 0, 1) bottompanel:SetColor(0, 0, 0, 1) while true do local ev = WaitEvent() if ev.id == EVENT_KEYDOWN and ev.data == KEY_SPACE then ui:SetScale(1.25) end if ev.id == EVENT_WINDOWCLOSE and ev.source == window then break end end 1 Quote Let's build cool stuff and have fun.
Solution Josh Posted September 7 Solution Posted September 7 Here is another working example that uses 3D rendering: --Get the displays local displays = GetDisplays() --Create window local window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[1]) --Create framebuffer local framebuffer = CreateFramebuffer(window) --Create world local world = CreateWorld() --Create camera local camera = CreateCamera(world, PROJECTION_ORTHOGRAPHIC) camera:SetPosition(framebuffer.size.x * 0.5, framebuffer.size.y * 0.5, 0) --Load a font local font = LoadFont("Fonts/arial.ttf") --Create user interface local ui = CreateInterface(camera, font, framebuffer.size) --Create widget local sz = ui.background:ClientSize() local button = CreateButton("Button", sz.x / 2 - 75, sz.y / 2 - 15, 150, 30, ui.background) while not window:KeyDown(KEY_ESCAPE) do while (PeekEvent()) do local ev = WaitEvent() if ev.id == EVENT_KEYDOWN and ev.data == KEY_SPACE then ui:SetScale(1.25) end if (ev.id == EVENT_WINDOWCLOSE and ev.source == window) then return 0 else ui:ProcessEvent(ev) end end world:Update() world:Render(framebuffer) end 1 Quote Let's build cool stuff and have fun.
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.