GUI上没有显示效果

我在我的游戏中制作了一个效果,它可以在一些选择项之间滚动,并在一个选择上减速停止。

有4个屏幕,我希望每个屏幕同时播放效果,所有GUI都同时显示,但效果从未播放。 我在以下代码块中标记了执行效果的代码部分:

message.chooseduel = function(spins)
    local lobby=workspace.Lobby
    local screens=lobby.Screens
    local n1,n2
    for _, screen in pairs(screens:GetChildren()) do
        local gui=screen.SurfaceGui
        local ds=gui.DuelScreen
        gui.Enabled=true
        for i, v in pairs(ds.Container:GetChildren()) do
            local ll
            local lastpicked
            local t = ds.Container:GetChildren()
            local menuItems = #t -- 菜单项数量
            local repeats = 1 -- 重复
            for R = 65 + spins, 1, -1 do
                ll = t[repeats]
                if ll:IsA("GuiObject") then
                    --**效果**--
                    local newgui = coroutine.wrap(function()
                    print("嗨!")
                    ll.BackgroundColor3=Color3.fromRGB(130, 125, 56)
                    wait( R^-.7*.7 ) --
                    ll.BackgroundColor3=ll.BorderColor3
                    repeats = repeats % menuItems + 1
                    end)
                    newgui()
                    --**效果**--
                end
            end
            ll = t[repeats]
            ll.BackgroundColor3=Color3.fromRGB(230, 225, 156)
            n1=string.sub(ll.n1.Image,64)
            n2=string.sub(ll.n2.Image,64)
            print("返回:",n1,n2)
        end
    end
    wait(2)
    return {n1,n2}
end
点赞
用户5472431
用户5472431
message.chooseduel = function(spins)
    spins = math.ceil(spins)  -- 仅为确保数值为整数。
    local lobby=workspace.Lobby
    local screens=lobby.Screens
    local n1,n2
    for _, screen in pairs(screens:GetChildren()) do
        local gui=screen.SurfaceGui
        local ds=gui.DuelScreen
        gui.Enabled=true
        spawn(function() -- 这里应该是开始协同程序 / 异步函数的地方
            local ll
            local lastpicked -- 未使用的变量
            local t = ds.Container:GetChildren()
            local numMenuItems = #t -- 菜单项数目
            local current = 1 -- 重复的
            print("HI!")
            for R = 65 + spins, 1, -1 do
                ll = t[current]
                if ll:IsA("GuiObject") then
                    ll.BackgroundColor3=Color3.fromRGB(130, 125, 56)
                    wait( R^-.7*.7 ) --
                    ll.BackgroundColor3=ll.BorderColor3
                    current = current % numMenuItems + 1
                end
            end
            print("BYE!")
            ll = t[current]
            ll.BackgroundColor3=Color3.fromRGB(230, 225, 156)
            n1=string.sub(ll.n1.Image,64) -- 嗯...有趣的事情,等等什么?
            n2=string.sub(ll.n2.Image,64)
            print("Returning:",n1,n2)
        end)
    end
    wait(2)
    return {n1,n2}
end

我不确定你在这里做了什么或者你如何设置事物,但总体上,你应该尝试移动协同程序/生成函数到循环外面。

2017-06-02 05:22:30