0

我创建了一个 Derma Frame,当我在该框架上调用 Center() 时,它没有正确地居中于屏幕。

截屏:

1]

这是代码:

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)
4

2 回答 2

0

:Center()功能确实将框架的起始位置设置在中间,您可以在屏幕截图中看到。我不确定,但我认为没有自动居中框架的功能。

于 2019-06-26T11:42:25.573 回答
0

我在 Discord 上与一些成员进行了交谈。感谢 Discord 上的 XXenix#2334 解决了这个问题。

这实际上是非常合乎逻辑的。在我的代码中,我在设置大小之前使用了 :Center() 函数。GLua 是在帧为 0px x 0px 时设置帧的位置,然后游戏设置好大小后,左上角在中心点。

我希望这可以帮助其他使用 GLua 的新手。

于 2019-06-26T21:00:25.787 回答