致命的熔岩

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

脚本编写简介中,您学习了如何在游戏中随着时间的推移进行更改。如果您想根据用户行为进行更改呢?在本教程中,您将学习如何制作一个致命的熔岩地板,当用户踩上去时会杀死他们。

设置

您需要在您的世界中放置致命的熔岩。如果您遵循了脚本编写简介课程,熔岩地板将很好地填补消失平台覆盖的空隙。

  1. 插入一个 Part 并将其移动到您的世界中的合适位置。将其命名为 LavaFloor

  2. 调整大小,使其覆盖封闭空间的地面。

  3. 通过将 Material 属性设置为 NeonColor 设置为橙色阴影,使地板看起来更像熔岩。

  4. LavaFloor 部件中插入一个 Script 并将其重命名为 Kill

  5. 删除默认代码并为熔岩创建一个变量。

    local lava = script.Parent

连接到事件

使用 事件 来检测用户何时触摸熔岩。每个部件都有一个 Touched 事件,当某物触摸它时会触发。您可以 连接 到此事件,以便在触发时运行一个函数。

  1. 声明一个名为 kill 的新函数。

  2. 使用点访问熔岩对象上的 Touched 事件,就像访问属性一样:lava.Touched

  3. Touched 事件上调用 Connect 函数,传递 kill() 作为触摸该部件时要调用的函数。

    local lava = script.Parent
    local function kill()
    end
    lava.Touched:Connect(kill)

您在 kill 函数中编写的任何代码现在将在某物触摸熔岩时运行。请注意,Connect 函数使用的是 冒号,而不是点 - 此时不必担心原因,只需记住这个区别。

获取触摸的部件

要杀死用户,函数需要与该用户相关联的对象。部件的 Touched 事件可以提供触摸它的“另一个部件”——但前提是您通过将其作为函数的 参数 请求它。

参数是函数在调用时期望接收的定义。参数可以像任何其他变量一样在函数中使用。您可以通过在调用函数时将其包含在括号中来向参数传递信息。参数在函数的第一行的括号中定义。为 kill 函数创建一个名为 otherPart参数

local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)

当调用 kill 函数时,otherPart 参数将表示触摸熔岩地板的部件,您在函数中编写的代码将能够使用它。

角色和人形

当用户触摸熔岩时,Roblox 可以检测到触摸它的用户的特定身体部位,例如左腿或右脚。该部件位于用户的 Character 模型中,该模型包含构成用户在游戏中化身的所有对象,包括:

  • 用户的各个身体部位,如头部、四肢和躯干。
  • 用户穿着的任何衣物和配饰。
  • Humanoid,一个特殊对象,包含与用户相关的许多属性,包括用户的健康。
  • 控制用户移动的 HumanoidRootPart。

如前所述,任何触摸熔岩的身体部件都是 Character 模型的一部分,因此您可以使用 otherPart.Parent 获取对该角色的引用。创建一个变量来存储触摸熔岩地板的部件的父级。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)

从角色模型中,您需要获取 Humanoid 对象以杀死用户。您可以使用 FindFirstChild() 函数来做到这一点——只需传递您要查找的对象的名称,它就会提供在该对象中找到的第一个匹配子对象。在 partParent 变量上调用 FindFirstChild(),以 "Humanoid" 作为要查找的子对象,并将结果存储在一个名为 humanoid 的新变量中。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)

检查人形

您可以使用 if 语句轻松检查是否找到了 Humanoid。if 语句中的代码仅在第一行定义的条件为真时运行。

有多种运算符可用于构建更复杂的条件,您将在未来的课程中遇到——现在,只需将 humanoid 变量放在那里。创建一个 if 语句,以 humanoid 作为条件。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)

设置角色健康

现在已经检查了 Humanoid,可以更改其属性。如果将其 Health 属性设置为 0,则相关的 Character 会死亡。在 if 语句的主体中,将 humanoid 的 Health 属性设置为 0。

local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)

这样,您的熔岩地板就完成了!进行游戏测试,您应该会发现致命的熔岩在接触时成功杀死用户。尝试将您的熔岩用作障碍中的额外挑战,或作为世界的边界。

最终代码

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。