iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
自我挑戰組

寫遊戲初體驗系列 第 17

Day 17 ImGui 元件

  • 分享至 

  • xImage
  •  

ImGui 基本元件

昨天大概跟大家簡述的 ImGui 的基本觀念,今天就帶大家看看一些 ImGui 的元件吧

建立ImGui Window

ImGui::Begin();
// context
ImGui::End();

可關閉 Window

static bool flag = true;

if(flag) {

    if(ImGui::Begin("Close Window", &flag)) {

    }
    ImGui::End();
}

Menu Bar

if (ImGui::BeginMainMenuBar())
{
    if (ImGui::BeginMenu("File"))
    {
        if (ImGui::MenuItem("Quit", "Alt+F4")) break;
        ImGui::EndMenu();
    }
    if (ImGui::BeginMenu("Edit"))
    {
        if( ImGui::MenuItem("TODO") ){
            //do something
        }
        ImGui::EndMenu();
    }
    ImGui::EndMainMenuBar();
}

Text 及 Text各種效果

Text / Disabled Text

ImGui::Text("Text");
ImGui::TextDisabled("Disabled text");

格式字串

ImGui::Text("haha%d", 123);

顏色

ImGui::TextColored(ImVec4(255, 0, 0, 255), "red");
ImGui::TextColored(ImVec4(0, 255, 0, 255), "blue");
ImGui::TextColored(ImVec4(0, 0, 255, 255), "green");
ImGui::TextColored(ImVec4(128, 128, 128, 255), "grey");

項目

ImGui::BulletText("aaa");
ImGui::BulletText("bbb");
ImGui::BulletText("ccc");

Button

基礎 Button

if(ImGui::Button("I am a Button")) {

    // Something happen when Button click
}

顏色

ImGui::PushStyleColor(ImGuiCol_Button, (ImVec4)ImColor::HSV(0.0f, 0.6f, 0.6f));
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, (ImVec4)ImColor::HSV(0.0f, 0.7f, 0.7f));
ImGui::PushStyleColor(ImGuiCol_ButtonActive, (ImVec4)ImColor::HSV(0.0f, 0.8f, 0.8f));

ImGui::Button("Red");

ImGui::PopStyleColor(3);

箭頭按鈕

ImGui::ArrowButton("##Left", ImGuiDir_Left);
ImGui::ArrowButton("##Right", ImGuiDir_Right);

CheckBox

static bool flag = false;
if(ImGui::Checkbox("FirstBox", &flag))
    // do something
if(flag)
    ImGui::Text("the box has been checked");
ImGui::End();

Ratio Button

static int select = -1;
ImGui::RadioButton("Zero", &select, 0); ImGui::SameLine();
ImGui::RadioButton("One", &select, 1); ImGui::SameLine();
ImGui::RadioButton("Two", &select, 2);

if(select >= 0)
{
    ImGui::Text("You Select %d\n", select);
}

Slider

        static float x = 0.f;
        static float y = 0.f;
        static int radius = 0;
        ImGui::SliderFloat("x",&x,0.f,1080.f);
        ImGui::SliderFloat("y",&y,0.f,720.f);
        ImGui::SliderInt("Size",&radius,0,100);


上一篇
Day 16 ImGui
下一篇
Day 18 Shader Class
系列文
寫遊戲初體驗30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言