local win = GUI:Win_Create("Win_1", 0, 0, 1136, 640)
GUI:LoadExport(win, NPCpath_name)
local ui = GUI:ui_delegate(win) 使用锚点的方法居中
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-07 00:28:34 |
👁️ 阅读: 0
根据浮生梦老师前端课程内容,要实现界面居中,可以使用锚点设置。以下是完整的代码示例:
```lua
-- 创建窗口
local win = GUI:Win_Create("Win_1", 0, 0, 1136, 640)
-- 加载UI导出文件
GUI:LoadExport(win, NPCpath_name)
-- 获取UI代理
local ui = GUI:ui_delegate(win)
-- 设置锚点居中(假设根节点名为"nd_root"或类似节点)
-- 方法1:直接设置窗口锚点(如果窗口本身需要居中)
GUI:setAnchorPoint(win, 0.5, 0.5)
-- 方法2:设置窗口内某个容器节点居中(更常用)
-- 首先找到需要居中的节点,比如背景节点或根节点
local rootNode = GUI:getChildByName(win, "img_main") -- 根据实际节点名调整
if not GUI:Win_IsNull(rootNode) then
GUI:setAnchorPoint(rootNode, 0.5, 0.5)
-- 设置位置到屏幕中心
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH")
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT")
GUI:setPosition(rootNode, screenWidth / 2, screenHeight / 2)
end
-- 或者使用UI代理中已有的节点
if ui and ui.img_main then -- 根据实际UI结构调整节点名
GUI:setAnchorPoint(ui.img_main, 0.5, 0.5)
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH")
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT")
GUI:setPosition(ui.img_main, screenWidth / 2, screenHeight / 2)
end
```
**关键点说明:**
1. `GUI:setAnchorPoint(widget, x, y)` - 设置控件的锚点,参数范围0-1,(0.5,0.5)表示中心点
2. `SL:GetMetaValue("SCREEN_WIDTH")` - 获取屏幕宽度
3. `SL:GetMetaValue("SCREEN_HEIGHT")` - 获取屏幕高度
4. 需要先确定UI结构中哪个节点需要居中(通常是背景图或主容器节点)
**注意:** 实际节点名称需要根据你的UI导出文件结构来确定,常见的节点名有`img_main`、`nd_root`、`la_bg`等。
← 返回问答库