我创建了一个Derma Frame,当我在该Frame上调用Center()时,它没有正确地居中显示在屏幕上。
屏幕截图:
代码如下:
local ply = LocalPlayer()
hook.Add("OnPlayerChat", "Link:lnotify:OnPlayerChat", function(ply, text, teamChat, isDead)
if(ply:IsSuperAdmin()) then
if (text == "!lnotify") then
local lnotifyAdminMenu = vgui.Create("DFrame")
lnotifyAdminMenu:Center()
lnotifyAdminMenu:SetSize(1000, 720)
lnotifyAdminMenu:ShowCloseButton(true)
lnotifyAdminMenu:MakePopup()
end
else
Derma_Message("You're not permitted to use this menu", "Access Denied", "OK")
end
end)
答案 0 :(得分:0)
:Center()
函数确实将帧的开始位置设置在屏幕快照中可以看到的中间位置。我不确定,但是我认为没有任何功能可以自动将框架居中。
答案 1 :(得分:0)
我与Discord的一些成员进行了交谈。感谢Discord上的XXenix#2334解决了这个问题。
这实际上是很合逻辑的。在我的代码中,在设置大小之前,我正在使用:Center()函数。当帧为0px x 0px时,GLua会设置帧的位置,然后在游戏设置大小后,左上角将位于中心位置。
我希望这可以帮助其他使用GLua的新手。