local shijieditu={}
local ui, root = GUI:npcUI("shijieditu")
local config = {
[1] = { -- 一大陆:zc - 主城地区
name = "一大陆(主城地区)",
maps = {
"zc",
"隐秘之地",
"影之道",
"零度空间",
"真假大厅",
"夺宝奇兵",
"空
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-03 11:28:25 |
👁️ 阅读: 1
要让界面显示在屏幕正中间,可以使用浮生梦老师前端课程中提到的屏幕坐标计算方法。根据你的代码,你已经获取了屏幕宽高,只需正确设置界面的锚点和位置即可。
在你的代码基础上,需要为 `root` 窗口设置锚点和位置。以下是修改后的关键部分:
```lua
-- 在创建背景层之后,设置主窗口位置
if GUI:Win_IsNotNull(root) then
-- 设置锚点为屏幕中心
GUI:setAnchorPoint(root, 0.5, 0.5)
-- 设置位置为屏幕中心
GUI:setPosition(root, screenWidth/2, screenHeight/2)
-- 淡入动画
GUI:runAction(root, GUI:ActionSequence(
GUI:CallFunc(function()
lib:timeline_fadeIn(root, 0.3, function()
SL:print("主窗口淡入完成")
end)
end)
))
end
```
**关键点说明:**
1. `GUI:setAnchorPoint(root, 0.5, 0.5)` - 将锚点设置为控件中心点
2. `GUI:setPosition(root, screenWidth/2, screenHeight/2)` - 将控件中心定位到屏幕中心
**完整的位置设置流程:**
```lua
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH") or 1280
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT") or 720
-- 1. 设置背景层居中
GUI:setAnchorPoint(bgLayer, 0.5, 0.5)
GUI:setPosition(bgLayer, screenWidth/2, screenHeight/2)
-- 2. 设置主窗口居中
GUI:setAnchorPoint(root, 0.5, 0.5)
GUI:setPosition(root, screenWidth/2, screenHeight/2)
```
**注意:** 如果界面布局文件本身有位置偏移,可能需要调整。你可以使用 `GUI:getPosition(root)` 检查当前坐标,然后用中心点计算进行修正。
这样设置后,无论玩家是什么分辨率,你的界面都会完美显示在屏幕正中央!
← 返回问答库