【问题标题】:What does the code in the description mean, it is roblox lua描述中的代码是什么意思,是roblox lua
【发布时间】:2020-11-15 21:39:53
【问题描述】:

我是 Roblox Lua 代码的初学者,我正在尝试了解开发人员论坛中的内容,但我正在努力解决此类问题。我的一个问题是,对于我,成对的玩家靠近底部是什么

 
-- Remove player's character from workspace on death
game.Players.PlayerAdded:Connect(function(player)
    while true do
        local char = player.CharacterAdded:wait()
        char.Humanoid.Died:Connect(function()
            char:Remove()
        end)
    end
end)
 
-- Respawn all dead players once every 10 seconds
while true do
    local players = game.Players:GetChildren()
    
    -- Check if each player is dead by checking if they have no character, if dead load that player's character
    for i, player in pairs (players) do     
        if (not game.Workspace:FindFirstChild(player.Name)) then
            player:LoadCharacter()
        end
    end
 
    -- Wait 10 seconds until next respawn check
    wait(10)
end```

【问题讨论】:

  • 通常最好只在问题中附加相关代码(在这种情况下只有for i, player... 部分。问题标题也应该是实际问题。如果stackoverflow 抱怨已经有该标题的问题存在,您很可能会在那里找到答案:D

标签: lua roblox


【解决方案1】:

pairs(tab) 为表中的每个条目返回一个键和一个值对。

for key, value in pairs( tab ) do
    --  do stuff here
end

它将对表中的每个条目执行一些操作。


人们通常将其缩短为

for k, v in pairs( tab ) do
    --  do stuff here
end

只要你知道它们是什么,你怎么称呼它们并不重要。有时人们会放入一个 _ 空格来表示他们没有使用那个特定的键或值。关键是,'players' 是一个表格,所以他们正在循环它的内容。


for i, player in pairs( players ) do
    --  do stuff here
end

这和上面写的完全一样,除了他们改变了那些“键,值”变量名 所以'i'现在是键,'player'是值。

【讨论】:

  • 对于序列,通常最好使用ipairs
【解决方案2】:

这就是所谓的编码中的“for循环”。

在此处阅读有关 Roblox Lua 循环的更多信息:

Roblox lua loops

正如您在评论中看到的那样,该位的目的是确定玩家是否已死亡。如果他们死了,加载角色。

例如在 python 中,“玩家”是一些可迭代的对象,如列表或字典。 "i", "player" 代表该列表中包含的对象。

例如:

def loop():
    example_list = [1, 2, 3, 4]

    for number in example_list:
    print(number)

loop()

会返回:

1
2
3
4

在您的情况下,循环正在遍历玩家列表,并检查每个人以查看他们是否已死亡。如果死了,重生玩家。

【讨论】:

  • “当真”是什么意思?
  • While True: 是一种启动 while 循环的方法。它基本上意味着“当 true == true,(始终为 true)时,做某事”......所以循环将始终执行。另一种写法是“while 1 == 1: do something”。只是提醒一下,如果您继续提出显而易见的问题,那么您将在这里得到很多反对票,并且最终被禁止提问,而这些问题显然是您在尝试研究自己方面付出了 0 努力。如果我的回答回答了您的问题,请接受它作为答案(点击我的回答旁边的复选标记)。
  • Boog,你为什么用 python 例子回答一个 lua 问题?对于尝试学习 lua 语法的初学者来说,将另一种语言混入其中似乎无济于事。
  • @Kylaaa,好吧,因为看起来发布者不了解编写任何类型代码的基础知识......我只是在解释循环的作用,而 imo python 是最容易阅读的/可将语言翻译成英语。 OP 并没有问一个特定的 Lua 相关问题......他们问的是“什么是“for 循环”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 2023-02-14
  • 2010-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多