Macho DUI | 粉牛 DUI

整理與功能說明

以下為 API 內容的中文翻譯與解說:

1. DUI 窗口建立與控制

API 函式
功能說明

MachoCreateDui(url)

建立一個 DUI 窗口,內容由指定的 url 所指向的頁面渲染;渲染由 Macho 後端處理,默認尺寸與遊戲解析度相同,且初始為隱藏狀態。

MachoShowDui(dui_handle)

顯示該 DUI 窗口,可用於調試或等待菜單載入完成時顯示。

MachoHideDui(dui_handle)

隱藏該 DUI 窗口,同樣可用於調試或過渡時使用。

MachoDestroyDui(dui_handle)

銷毀指定的 DUI 窗口,釋放資源。

2. DUI 與網頁互動通訊

  • MachoSendDuiMessage(dui_handle, json):將一段 JSON 資料(字串)傳送至該 DUI 窗口所載入的網頁中。你可以在該網頁使用 JavaScript 接收這個訊息,例如:

    window.addEventListener("message", (event) => {
      // 處理 event.data 中的 JSON
    });

使用情境舉例與建議

  • 嵌入動態 HTML/CSS UI: 若想在遊戲中顯示自定義 UI(例如控制面板或資訊圖層),可將網頁存放為本地 HTML 文件或遠端頁面,並使用 MachoCreateDui() 加載它。

  • 訊息互動控制: 使用 MachoSendDuiMessage() 將 Lua 或遊戲中的狀態資訊傳遞到 UI,再由網頁端透過 message 事件接收更新畫面。

  • 載入時動畫或 Loading 效果: 初始建立後先保持 hidden,等 UI 製作完成(例如動畫播完)再用 MachoShowDui() 顯示,提升使用者體驗。

  • 清除資源: 當 UI 不再需要時,務必呼叫 MachoDestroyDui() 避免資源浪費。


簡要總結表格

功能分類
API 函式
說明

建立 DUI

MachoCreateDui(url)

創建 DUI 窗口並指定渲染內容

控制顯示/隱藏

MachoShowDui(dui_handle) / MachoHideDui(dui_handle)

顯示或隱藏 DUI 窗口

銷毀 DUI

MachoDestroyDui(dui_handle)

銷毀窗口並釋放資源

傳送訊息至 UI

MachoSendDuiMessage(dui_handle, json)

傳送 JSON 給 DUI 頁面使用 JS 接收

最后更新于