帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:模式  immediate-mode  用户界面  HAXE  INT  Immediate  接口  USE  
Immediate Mode Graphical User interface for Haxe Kha

  • 源代码名称:zui
  • 源代码网址:http://www.github.com/armory3d/zui
  • zui源代码文档
  • zui源代码下载
  • Git URL:
    git://www.github.com/armory3d/zui.git
  • Git Clone代码到本地:
    git clone http://www.github.com/armory3d/zui
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/armory3d/zui
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • zui

    为工具和游戏调试设计的可移植即时模式用户界面库。 使用Haxe和Kha构建。 查看 KodeGarden的现场演示。

    正在启动

    • 克隆到 your_kha_project/库
    • project.addLibrary('zui'); 添加到 khafile.js
    // In init()varui=newZui({ font: myFont, khaWindowId: 0, scaleFactor: 1.0 });
     // In render()publicfunctionrender(frame:Framebuffer) {
     var g = frame.g2;
     g.begin();
     // Draw your stuff... g.end();
     ui.begin(g);
     if (ui.window(Id.handle(), x, y, w, h, drag)) {
     if (ui.button("Hello")) {
     trace("World");
     }
     }
     ui.end();
     // Draw more stuff... }

    元素

    functiontab(id: Handle, text: String): Bool;functionpanel(id: Handle, text: String, accent =1): Bool;functionimage(image: Image): State;functiontext(text: String, align =Left, bg =0);functiontextInput(id: Handle, label =""): String;functionbutton(text: String, align =Center): Bool;functioncheck(id: Handle, text: String): Bool;functionradio(groupId: Handle, pos: Int, text: String): Bool;functioninlineRadio(id: Handle, texts: Array<String>): Int;functioncombo(id: Handle, texts: Array<String>, label =""): Int;functionslider(id: String, text: String, from: Float, to: Float, filled =false, precision =100, displayValue =true): Float;functiontooltip(text: String);// Formatingfunctionrow(ratios: Array<Float>);functionseparator();functionindent();functionunindent();

    Id.hx - 生成句柄的简单宏

    varstate= ui.check(Id.handle(), "Check Box");

    Ext.hx - 预生成元素:

    functionlist(...); // See examplesfunctionpanelList(...);functioncolorPicker(...);functioncolorWheel(...); functionfileBrowser(...);

    Nodes.hx - 绘图 node 系统

    nodes.nodeCanvas(...); // See examples

    Canvas.hx - 绘制自定义布局

    Canvas.draw(...); // See examples

    示例

    查看示例/ 文件夹。 运行特定的示例,只需将它的文件夹放入 KodeStudio,然后点击。 如果你在编译时遇到问题,请将最新的Kha 存储库克隆到你的示例文件夹( 除了 khafile.js ) 中。 这将让KodeStudio获取最新的Kha 。

    主题

    主题可以使用 TTheme typedef定义。 检查 zui.Themes 类例如。 在创建新的Zui实例时设置 ZuiOptions.theme 以覆盖默认主题。

    代码段

    更改的检查元素

    varhcombo=Id.handle();
    ui.combo(hcombo, ["Item 1", "item 2"]);if (hcombo.changed) {
     trace("Combo value changed this frame");
    }

    按需重新绘制zui窗口以按需重新绘制

    functionrender(..) {
     // Get window handlevar hwin =Id.handle();
     // Force redraw - set each frame or whenever desired hwin.redraws =1;
     if (ui.window(hwin, x, y, w, h)) { ... }
    }

    使用呈现目标的阻止嵌套/结束调用

    g2.begin();
    ..
    g2.end();
    renderTarget.g2.begin();
    ..
    renderTarget.g2.end();
    zui.begin(); // Zui also draws to texture....
    zui.end();
    g2.begin();
    ..
    g2.end();

    在for循环中使用 Id.handle()

    // Id.handle() works at compile time// Call. nest() to get unique handle per interationfor (i in 0...3) Id.handle().nest(i);// Or use new zui.Handle() directly

    设置初始 Id.handle() 状态

    varh1=Id.handle({selected: true});varh2=Id.handle({position: 0});varh3=Id.handle({value: 1.0});varh4=Id.handle({text: "Text"});

    自定义集成

    使用Kha强大的呈现目标系统,可以很容易地将库集成到任何场景中。 创建新的Zui实例时将 ZuiOptions.autoNotifyInput 设置为 false 。 然后你可以手动处理输入并以任何可能需要的方式呈现生成的纹理。

    zui.onMouseDown(button:Int, x:Int, y:Int)
    zui.onMouseUp(button:Int, x:Int, y:Int)
    zui.onMouseMove(x:Int, y:Int, movementX:Int, movementY:Int)
    zui.onMouseWheel(delta:Int)

    imgui 激发。



    文章标签:INT  USE  模式  用户  接口  用户界面  HAXE  Immediate  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语