Difference between revisions of "love-imgui (日本語)"

(Created page with " == LOVE-IMGUI == Binary IMGUI module for LÖVE 用の IMGUI バイナリモジュールです。 IMGUI 1.50 WIP を使用しており 258 本の関数に対応していま...")
 
m (リンク)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
 
== LOVE-IMGUI ==
 
== LOVE-IMGUI ==
 
+
LÖVE 用の IMGUI バイナリモジュールです。 IMGUI 1.50 WIP を使用しており 258 本の関数に対応しています (40 本は非対応)。
 
 
Binary IMGUI module for LÖVE 用の IMGUI バイナリモジュールです。 IMGUI 1.50 WIP を使用しており 258 本の関数に対応しています (40 本は非対応)。
 
 
 
  
 
== 用例 ==
 
== 用例 ==
Line 141: Line 137:
 
* [https://github.com/ocornut/imgui IMGUI GitHub ページ]
 
* [https://github.com/ocornut/imgui IMGUI GitHub ページ]
  
{{#set:LOVE Version=0.10.x}}
 
{{#set:LOVE Min Version=0.10.x}}
 
 
{{#set:Description=LOVE 用の IMGUI モジュール}}
 
{{#set:Description=LOVE 用の IMGUI モジュール}}
 
{{#set:Keyword=GUI}}
 
{{#set:Keyword=GUI}}
 +
{{#set:LOVE Min Version=0.10.x}}
 +
{{#set:LOVE Version=0.10.x}}
 +
{{#set:Standalone_Lua_Module=いいえ (IMGUI への C ラッパー)}}
 
[[Category:Libraries (日本語)]]
 
[[Category:Libraries (日本語)]]
 +
 +
== そのほかの言語 ==
 +
{{i18n (日本語)|love-imgui}}

Latest revision as of 01:24, 16 December 2019

LOVE-IMGUI

LÖVE 用の IMGUI バイナリモジュールです。 IMGUI 1.50 WIP を使用しており 258 本の関数に対応しています (40 本は非対応)。

用例

簡単な統合方法

require "imgui"

local showTestWindow = false
local showAnotherWindow = false
local floatValue = 0;
local sliderFloat = { 0.1, 0.5 }
local clearColor = { 0.2, 0.2, 0.2 }
local comboSelection = 1
local textValue = "text"

--
-- LOVE コールバック
--
function love.load(arg)
end

function love.update(dt)
    imgui.NewFrame()
end

function love.draw()
    local status

    -- メニュー
    if imgui.BeginMainMenuBar() then
        if imgui.BeginMenu("File") then
            imgui.MenuItem("Test")
            imgui.EndMenu()
        end
        imgui.EndMainMenuBar()
    end

    -- デバッグウインドウ
    imgui.Text("Hello, world!");
    status, clearColor[1], clearColor[2], clearColor[3] = imgui.ColorEdit3("Clear color", clearColor[1], clearColor[2], clearColor[3]);

    -- スライダー
    status, floatValue = imgui.SliderFloat("SliderFloat", floatValue, 0.0, 1.0);
    status, sliderFloat[1], sliderFloat[2] = imgui.SliderFloat2("SliderFloat2", sliderFloat[1], sliderFloat[2], 0.0, 1.0);

    -- コンボ
    status, comboSelection = imgui.Combo("Combo", comboSelection, { "combo1", "combo2", "combo3", "combo4" }, 4);

    -- ウィンドウ
    if imgui.Button("Test Window") then
        showTestWindow = not showTestWindow;
    end

    if imgui.Button("Another Window") then
        showAnotherWindow = not showAnotherWindow;
    end

    if showAnotherWindow then
        imgui.SetNextWindowPos(50, 50, "FirstUseEver")
        status, showAnotherWindow = imgui.Begin("Another Window", true, { "AlwaysAutoResize", "NoTitleBar" });
        imgui.Text("Hello");
        -- テキストの入力
        status, textValue = imgui.InputTextMultiline("InputText", textValue, 200, 300, 200);
        imgui.End();
    end

    if showTestWindow then
        showTestWindow = imgui.ShowTestWindow(true)
    end

    love.graphics.clear(clearColor[1] * 255, clearColor[2] * 255, clearColor[3] * 255, 255)
    imgui.Render();
end

function love.quit()
    imgui.ShutDown();
end

--
-- ユーザの入力
--
function love.textinput(t)
    imgui.TextInput(t)
    if not imgui.GetWantCaptureKeyboard() then
        -- ゲームへイベントを渡します
    end
end

function love.keypressed(key)
    imgui.KeyPressed(key)
    if not imgui.GetWantCaptureKeyboard() then
        -- ゲームへイベントを渡します
    end
end

function love.keyreleased(key)
    imgui.KeyReleased(key)
    if not imgui.GetWantCaptureKeyboard() then
        -- ゲームへイベントを渡します
    end
end

function love.mousemoved(x, y)
    imgui.MouseMoved(x, y)
    if not imgui.GetWantCaptureMouse() then
        -- ゲームへイベントを渡します
    end
end

function love.mousepressed(x, y, button)
    imgui.MousePressed(button)
    if not imgui.GetWantCaptureMouse() then
        -- ゲームへイベントを渡します
    end
end

function love.mousereleased(x, y, button)
    imgui.MouseReleased(button)
    if not imgui.GetWantCaptureMouse() then
        -- ゲームへイベントを渡します
    end
end

function love.wheelmoved(x, y)
    imgui.WheelMoved(y)
    if not imgui.GetWantCaptureMouse() then
        -- ゲームへイベントを渡します
    end
end

リンク

そのほかの言語