如何让lua在while循环中停止if循环?

时间:2016-06-07 17:51:59

标签: loops if-statement lua logic roblox

这是一个非常难以提出的问题,因为我无法将所有内容都纳入问题,但我可以解释这个问题。我的游戏逻辑/游戏脚本基本上是:

function game()
-- stuff
end

while true do
    while players < 2 do
     -- tell player to invite more players and all that jazz
    end

    if players >= 2 then
       game()
    end
end

(这只是伪代码,我为了简单起见忽略了wait()和Roblox API之类的东西,因为这个想法仍然相同,但我认为这个问题对于一般的编程来说已经足够了)

现在,在我的游戏&#39;功能,当玩家准备好(即不在菜单等)时,它会将所有准备好的玩家传送到游戏所在的点。不幸的是,因为&#39; game()&#39;一直在运行,玩家不断被一遍又一遍地传送而且它不会停止。我不确定如何做到这样,即使游戏()&#39;游戏也只传送一次。经常跑。

以下是简单解释的远程传送代码,无需了解Roblox API:

if #ready >= 2 then -- if the players in the list 'ready' (the players that are ready to start the game) 
    print(player.Name .. " moved") -- show which player is moved
    player:MoveTo(--place where the game is)) -- actually move the player
end

问题在于,因为&#39; game()&#39;正在一直运行,玩家不断移动到游戏的位置(使他们无法移动)。在所有球员都被移动后,我如何让Lua停止移动球员?我试过使用for循环,但是因为游戏()&#39;正在重复。我希望任何知识渊博的人都能理解这一点。

1 个答案:

答案 0 :(得分:2)

在我看来,你想保留两个名单:正在玩,并希望玩。

我不确定你想要的是什么逻辑(人们可以加入正在进行的游戏吗?),但基本的想法是你只在希望玩的玩家列表上运行游戏,不是目前正在比赛的球员。