这是一个非常难以提出的问题,因为我无法将所有内容都纳入问题,但我可以解释这个问题 . 我的游戏逻辑/游戏脚本基本上是:
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之类的东西,因为这个想法仍然相同,但我认为这个问题对于一般的编程来说已经足够了)
现在,在我的“游戏”功能中,当玩家准备好(即不在菜单等中)时,它会将所有准备好的玩家传送到游戏所在的位置 . 不幸的是,由于'game()'一直在运行,所以玩家不断地一次又一次地传送,并且它不会停止 . 即使'game()'一直在运行,我也不确定如何制作它只是传送它们一次 .
以下是简单解释的远程传送代码,无需了解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
问题在于,由于'game()'一直在运行,所以玩家不断地移动到游戏所在的位置(使他们无法移动) . 在所有球员都被移动后,我如何让Lua停止移动球员?我尝试使用for循环,但由于'game()'正在重复,因此也一直在重复 . 我希望任何知识渊博的人都能理解这一点 .